为了账号安全,请及时绑定邮箱和手机立即绑定

为什么这里的立即执行函数报错了

为什么这里的立即执行函数报错了

蝴蝶刀刀 2018-12-21 19:15:10
最开始的时候代码: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,又变正常了。为什么会这样子呢,拿到立即执行函数传参数不能传递函数,只能传递变量?
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 544 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信