我已经阅读了关于javascript函数hoisitng。但在这种情况下,我不明白匿名函数是如何被提升的
var myObj = {
name: 'MyName',
dob: 10,
office: 'MyOffice',
myFun: function(){
alert("Anonymous function");
},
showItem: function(){
alert("Name : " + this.name + " office : " + this.office);
}
};
alert(myObj.showItem());
如果我运行代码,会提示两条警报消息。一个显示名称,办公室和其他未定义。
答案 0 :(得分:3)
那是因为正在调用两个警报。 第一个是var中的showItem函数。 第二个是
的包装警报alert(myObj.shwItem());
尝试:
myObj.showItem();
在这种情况下,只会调用定义的var中的警报。
答案 1 :(得分:1)
具有名称和办公室的警报来自showItem
函数本身,alert(myObj.showItem());
显示未定义,因为它警告从showItem
返回的内容,这是什么都没有,因此未定义。