这样函数调用,该如何解释?
JScript code
var foo = {
bar: function () {
alert(this);
}
};
1、foo.bar();//foo
2、(foo.bar)();//foo
3、(foo.bar = foo.bar)(); // global
4、foo.bar = foo.bar; foo.bar();//foo
6、(false || foo.bar)(); // global
------解决方案--------------------
我的理解是,js中小括号()有一个用法是(复杂表达式),这时的作用是取括号内的复杂表达式的最终结果为返回结果。也就是是(foo.bar = foo.bar)(3);等价于var func = (foo.bar = foo.bar); func(3); 此时this正好为window,(false || foo.bar)(5);同理
------解决方案--------------------