JavaScript多个警报提示

时间:2014-10-17 22:13:18

标签: javascript hoisting

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

如果我运行代码,会提示两条警报消息。一个显示名称,办公室和其他未定义。

2 个答案:

答案 0 :(得分:3)

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

的包装警报
alert(myObj.shwItem());

尝试:

myObj.showItem();

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

答案 1 :(得分:1)

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