87,914
社区成员
发帖
与我相关
我的任务
分享
var name = "The Window";
var object = {
name: "My Object",
getNameFunc: function () {
return this.name;
}
};
alert((object.getNameFunc = object.getNameFunc)());
<script type="text/javascript">
var name = "I am Window";
var object = {
name: "My Object",
getNameFunc: function () {return this.name;}
};
var a=object.getNameFunc;alert(a);//①弹出源代码function () {return this.name;}
var a=object.getNameFunc();alert(a);//②弹出My Object
var a=object.getNameFunc;alert(a());//③弹出I am Window
</script>
在我对上面3种结果的原理慢慢理解、彻底理解之后,终于明白了下面这个语句的含义了
④alert((object.getNameFunc = object.getNameFunc)());
学习了!
var tempFunc = (object.getNameFunc = object.getNameFunc);
tempFunc();
<script type="text/javascript">
<!--
var name = "I am Window";
var object = {
name: "My Object",
getNameFunc: function () {
return this.name;
}
};
var a= object.getNameFunc; //将函数从object中复制出来,这时函数的this指向window
alert(a());
//(var b=a),将返回a,同理(a=a) 返回a 所以这里返回的就是独立的匿名函数,效果等同于上面的代码
alert((object.getNameFunc = object.getNameFunc)());
//-->
</script>