请查看这个 JS Bin http://jsbin.com/iqikuf/3/edit
在控制台中运行以下命令时,显示的结果对我来说很有意义。
声明:vd.tools.push(dataItem);
结果:2
但是为什么我们在控制台中运行时会得到以下结果?
声明:vd.tools.length
结果:0
请查看这个 JS Bin http://jsbin.com/iqikuf/3/edit
在控制台中运行以下命令时,显示的结果对我来说很有意义。
声明:vd.tools.push(dataItem);
结果:2
但是为什么我们在控制台中运行时会得到以下结果?
声明:vd.tools.length
结果:0
正如 DCoder 指出的那样
需要括号
vd.tools().length
我想整合和解释 DCoder 的答案。
vd.tools
指一个observableArray,它是一个 Javascript 对象,其length
属性不指存储项目的数量。
通过“添加括号” vd.tools()
,我们获得了对由 KnockoutJS 的 observableArray 包装的底层数组的引用。
这是存储我们数据的真实数组,在这里我们可以请求length
期望正确结果的属性。
因此,DCoder 的回答非常有意义。