因为在整理梳理闭包,看到这段代码,有两个问题:
var name = "The Window";
var object = {
name : "My Object",
getNameFunc : function(){
return function(){
return this.name;
};
}
};
alert(object.getNameFunc()()); //The Window
① 输出The Window的原因是什么?~不是应该输出My Object吗?~this不是对象字面量object的作用域么;
②因为有了第一问,所以我把代码写在html文档中看看输出结果,代码如下(因为是测试用的,所以尽量简单):
<!doctype html>
<html>
<head></head>
<script>
window.onload = (function() {
var name = "The Window";
var object = {
name : "My Object",
getNameFunc : function(){
return function(){
return this.name;
};
}
};
alert(object.getNameFunc()());
});
</script>
<body>
</body>
</html>
弹出来的是一个没有内容的提示框。=。=这就奇怪了,难道window.onload用的不对吗?
添加回答
举报
0/150
提交
取消