Javascript KnockoutJS数组

Javascript KnockoutJS数组,javascript,arrays,knockout.js,observable,Javascript,Arrays,Knockout.js,Observable,请签出这个JS邮箱 当在控制台中运行以下命令时,显示的结果对我来说是有意义的 语句:vd.tools.push(数据项)重新投递:2 但为什么在控制台中运行时会得到以下结果 语句:vd.tools.length结果:0 正如德科德所指出的那样 需要括号吗 vd.tools().length我想整合并解释DCoder的答案 vd.tools指的是一个observableArray,它是一个Javascript对象,length属性不指存储项的数量 通过“添加括号”vd.tools()我们获得对底

请签出这个JS邮箱

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

语句:vd.tools.push(数据项)
重新投递:2

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

语句:vd.tools.length
结果:0

正如德科德所指出的那样

需要括号吗


vd.tools().length

我想整合并解释DCoder的答案

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

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

这是存储数据的真实数组,在这里,我们可以要求
length
属性获得正确的结果


因此,DCoder的回答很有道理。

谢谢DCoder,我不能接受你的回答,因为这是一个评论。如果您愿意,请将其作为答案发布,我会接受。
工具
ObservalArray上的
.length
实际上是,它返回函数期望的参数数,因此为0。