2

请查看这个 JS Bin http://jsbin.com/iqikuf/3/edit

在控制台中运行以下命令时,显示的结果对我来说很有意义。

声明:vd.tools.push(dataItem);
结果:2

但是为什么我们在控制台中运行时会得到以下结果?

声明:vd.tools.length
结果:0

4

2 回答 2

2

正如 DCoder 指出的那样

需要括号

vd.tools().length

于 2013-01-03T06:03:16.380 回答
1

我想整合和解释 DCoder 的答案。

vd.tools指一个observableArray,它是一个 Javascript 对象,其length属性不指存储项目的数量。

通过“添加括号” vd.tools(),我们获得了对由 KnockoutJS 的 observableArray 包装的底层数组的引用。

这是存储我们数据的真实数组,在这里我们可以请求length期望正确结果的属性。

因此,DCoder 的回答非常有意义。

于 2015-01-06T18:34:57.007 回答