怎么样:
var ViewModel = function() {}
var ViewModel.prototype.functionName = function() {};
不同于:
var ViewModel = function() {
this.functionName = function() { ... }
}
第一种方法会被认为是“错误的”吗?对我来说,它似乎比第二个更具可读性。我相信第二个就是第一个,只是没有“每次都编写 .prototype.
”的概念?
任何解决这个问题的帮助可能会让事情对我来说更有意义。
最佳答案
区别在于定义函数的位置。
使用ViewModel.prototype.functionName
版本,该函数在原型(prototype)中定义,并且可供该类型的所有实例使用,而无需进一步的执行成本或内存消耗。
使用this.functionName
,函数在实例本身中定义。它的优点是允许每个实例都有一个唯一的函数版本,通常用于捕获实例特定的数据。
关于javascript - Knockout中的嵌套函数看起来很乱,为什么不使用prototype关键字呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34277494/