javascript - Knockout中的嵌套函数看起来很乱,为什么不使用prototype关键字呢?

标签 javascript knockout.js

怎么样:

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/

相关文章:

javascript - Ruby Rails - 可选表单输入以复选框为条件显示

javascript - 无法使用 knockout 和 knockout-sortable 在正确的索引处插入对象

javascript - 如何在 webpack 加载器中删除 'module.exports' 并获取纯字符串?

css - knockout validation 错误消息跨度

javascript - knockout decorateInputElement配置

javascript - KnockoutJS - 绑定(bind)不会使用映射插件更新

javascript - 当我单击更新按钮时,它不会更改/更新(CodeIgniter,更新多行)

javascript - 浏览器扩展 - 如何获取当前页面的 URL

Javascript索引

javascript - AngularUI 模态对话框不起作用