我知道改变数组大小的通用方法是使用.push()
。
然而,今天我在AngularJS中看到了一段代码,类似于这样:
var service = {
pages: [],
doSmth: doSmth
};
doSmth();
function doSmth() {
service.pages[1] = "abc";
service.pages[5] = "def";
}
我在浏览器上运行了调试器,发现在调用 doSmth()
之前,pages[1]
是未定义的,但在调用后,没有出现任何错误就给 pages[1]
赋值了。
这是如何可能的呢?
function doSmth
是被提升的。 - NicolasMoisepush
函数只是一种方便的方法,用于将元素添加到myarray[myarray.length]
。 - Matt Burland