javascript - 声明调用辅助函数的 javascript 原型(prototype)函数的正确方法是什么

标签 javascript performance prototypal-inheritance

我正在尝试确定声明 javascript“类”使用的辅助函数的最佳实践是什么。例如:

方法#1:

// closure issues?
function helper(param) {
  return compute(param);   
}

function HeavilyInstantiated() {}

HeavilyInstantiated.prototype.computeHard = function(params) {
   var someResult = helper(params.prop1);
   return someResult;
}

方法#2:

function HeavilyInstantiated() {}

// still, only one instance for all objects instantiated?
HeavilyInstantiated.prototype.helper = function(param) {
   return compute(param);  
}
HeavilyInstantiated.prototype.computeHard = function(params) {
   var someResult = this.helper(params.prop1);
   return someResult;
}

最佳答案

我更喜欢方法 3,将其声明为构造函数的属性:

function HeavilyInstantiated() {}

HeavilyInstantiated.helper = function(param) {
   return compute(param);  
}
HeavilyInstantiated.prototype.computeHard = function(params) {
   var someResult = HeavilyInstantiated.helper(params.prop1);
   return someResult;
}

您仍然只有一个辅助方法实例,但它不会污染全局命名空间或 HeavilyInstantiated 实例(它不在其原型(prototype)链上)。

关于javascript - 声明调用辅助函数的 javascript 原型(prototype)函数的正确方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18506263/

相关文章:

javascript - 是否可以将渲染函数放入 Express 的 for 循环中?

javascript - 问题 | JQuery slide 强制我的页面滚动到顶部

javascript - 使用 js 从 div 获取原始 HTML?

sql - Linq到SQL : select optimization

xhtml - 多少个 div 标签太多了?

javascript - "prototype"的反义词是什么?

javascript 对象原型(prototype)与 jquery 冲突?

javascript - 子类如何获取父类(super class)的实例变量?

javascript - Coffeescript 在悬停时添加按钮

javascript - 在 jQuery 中执行此过程的最有效方法是什么?