【发布时间】:2018-01-15 10:55:37
【问题描述】:
我想知道为什么这个例子会返回'global'而不是'obj2'? '(obj2.say = obj1.say)()' 和 '(obj2.say)()' 有什么不同? 代码如下:
var text = 'global';
var obj1 = { text: 'obj1', say: function () {console.log(this.text)}};
var obj2 = { text: 'obj2'};
(obj2.say = obj1.say)();
【问题讨论】:
-
这里没有 IIFE。
-
@FelixKling - 不是传统意义上的,但
(obj2.say = obj1.say)是一个计算结果为函数的表达式,并且该函数立即被调用......(但是,是的,你是对的。) -
我希望它返回 obj1。有趣
-
是的,@nnnnnn 是对的......
标签: javascript iife