我有以下 javascript 代码
var foo = function () {
var func = function () {
var one = 0;
if (one === 0) {
alert('func');
}
}
return {
func: func
};
}
foo = new foo();
foo.func();
我上面的代码警报func
很好。现在,当我将对象文字更改return {}
为以下时
return
{
func: func
}
然后它不返回任何东西。;
我知道为什么,因为 JavaScript在返回末尾添加了分号。所以暂时搁置这部分,让我们回顾一下我的原始代码。当我将if
声明更改为以下时
if (one === 0)
{
alert('func');
}
然后它会发出警报func
。为什么?. 因为在这种情况下,javascript也应该在末尾添加分号,if(one === 0)
所以我认为它应该返回错误。
等一下,还有更多。现在让我们把你的注意力带回到我在顶部的原始代码。现在,当我将内部功能更改为以下时
var func = function ()
{
//code here
}
然后它再次执行此代码并发出警报func
。为什么?外部功能也是如此。