这样函数调用,该怎么解释
这样函数调用,该如何解释?JScript codevar foo {bar: function () {alert(this)}}1、foo.bar()//foo 2
这样函数调用,该如何解释?
JScript codevar 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);同理
[解决办法]