最开始的时候代码:var a = "global";function foo() { console.log(this.a);}var obj1 = { a: "local", foo: foo}function doFoo(fn) { fn();}doFoo(obj1.foo);上述代码运行结果为:global,一切正常代码修改后:var a = "global";function foo() { console.log(this.a);}var obj1 = { a: "local", foo: foo}(function doFoo(fn) { fn();})(obj1.foo);当我把上述doFoo执行函数改为立即执行函数之后,报错Uncaught TypeError: {(intermediate value)(intermediate value)} is not a function代码再次修改,直接将参数赋值为一个变量testValuevar a = "global";function foo() { console.log(this.a);}var obj1 = { a: "local", foo: foo}var textVaule = obj1.foo;(function doFoo(fn) { fn();})(textVaule);运行结果为:global,又变正常了。为什么会这样子呢,拿到立即执行函数传参数不能传递函数,只能传递变量?
添加回答
举报
0/150
提交
取消