Javascript方法用法
在浏览KnockoutJS的示例时,我看到了以下内容 我不是Javascript方面的专家,但对self.chosenFolderId(文件夹)的用法有点困惑代码> chosenFolderId是一个属性,赋值为Javascript方法用法,javascript,knockout.js,Javascript,Knockout.js,在浏览KnockoutJS的示例时,我看到了以下内容 我不是Javascript方面的专家,但对self.chosenFolderId(文件夹)的用法有点困惑 chosenFolderId是一个属性,赋值为ko.observable()根据其他语言的经验 如何通过传递像self.chosenFolderId(folder)这样的参数来调用它 文件夹定义在哪里 如果你能指出一篇文章来解释这一点,那就行了 谢谢。javascript中的函数是一流的对象ko.observable()是一个函数调用,其
ko.observable()代码>根据其他语言的经验
如何通过传递像self.chosenFolderId(folder)这样的参数来调用它代码>
文件夹定义在哪里
如果你能指出一篇文章来解释这一点,那就行了
谢谢。javascript中的函数是一流的对象ko.observable()
是一个函数调用,其返回值本身就是一个函数
基本上我可以这样做:
var observable = function(some_param) {
return function(some_other_param) {
// do something useful here
}
}
然后我可以打电话:
observable(1)(2);
chosenFolderId
是一个属性,但属性可以是函数(在本例中必须是)
因此ko.observable
返回一个函数,该函数只接受一个参数(文件夹)
这和下一行没什么不同:
self.goToFolder = function(folder) { ... };
其中,goToFolder
属性被设置为函数
文件夹
本身作为goToFolder
的参数被“定义”为一个参数。任何调用goToFolder
都会为javascript函数中的文件夹提供一个值,这些函数可以分配给变量、作为参数传递给函数、从函数返回等等。换句话说,谢谢你,戴夫。所以参数(文件夹)不必是特定的类型。我知道JS本质上是动态的。那么,类型信息不需要?@bsreekanth几乎可以肯定它需要是某个类型,或者包含一个对框架有意义的值——我不知道该类型或值是什么样子。您可以通过在goToFolder
函数中设置断点或记录断点来确定它是什么。。最明显的区别是Javascript不使用强数据类型,因此参数没有为它们指定类型,而是采用传递给它们的任何数据类型。此外,Javascript是解释的而不是编译的,因此任何不匹配都会在运行时而不是编译时检测到,因为没有编译步骤。@b回顾一下,在大多数(所有?)现代Java脚本中都有编译步骤,只是它通常对用户不可见,例如在浏览器上下文中。我的观点是,参数确实需要是特定的类型和/或值,只是无法指定当前JS中代码之外的类型和/或值。
self.goToFolder = function(folder) { ... };