求助:关于javascript函数的一个问题 最近一些资料说函数就是一个对象,
于是我有了下面的测试。
<script>
function fn1(arg){
return rel = function (num){
return arg + num;
}
var f = fn1(20);
var f2 = fn1(10);
f(20); //40
f2(20); //30
</script>
这样我就有疑问了,既然函数是一个对象,那么f和f2应该指向的是同一个对象,那么结果应该
分别是 30,30。
求助高手。
java对象JavaScript函数
分享到:
------解决方案-------------------- var f = fn1(20);
调用fn1返回了一个方法然后赋值给f
相当于
var f = function(num){
return 20 + num;
} ------解决方案-------------------- 你传递了不同的参数,当然导致不同的结果呀。那函数相当于
function fn(a,b){
return a+b;
}
var f1 = fn(20,20);
alert(f1)
var f2 = fn(10,20);
alert(f2)
------解决方案--------------------
这句话存在逻辑问题,函数是对象,函数多次运行返回的值必须指向同一个对象么?
因为函数每次运行,返回的rel都不一样。就像 function test(){ return new Object();}一样,不会每次都返回相同的对象。