1

我已阅读有关 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());

如果我运行代码,会提示两条警报消息。一显示姓名、办公室等未定义。

4

2 回答 2

3

那是因为正在调用两个警报。第一个在您的 var 中的 showItem 函数中。第二个是包装警报

alert(myObj.shwItem());

尝试:

myObj.showItem();

在这种情况下,只会调用您定义的 var 中的警报。

于 2014-10-17T22:16:04.693 回答
1

带有名称和办公室的警报来自showItem函数本身,alert(myObj.showItem());显示未定义,因为它正在警报从返回的内容showItem,它什么都没有,因此未定义。

于 2014-10-17T22:16:48.447 回答