JavaScript 最佳实践原型(prototype)

标签 javascript object prototype

我在构造函数的原型(prototype)中有一个函数:

function Animal(name) {
  this.name = name
}

Animal.prototype.generateToys = function(numberOfToys) {
  if(numberOfToys == 1) {
    this.createToys();
  } 
  else {
    this.createToys();
  }
}

createToys 仍然需要声明。这就是我的问题所指向的地方。假设 generateToys 将是唯一调用 createToys() 的方法,在方法 generateToys 中创建 createToys 会更好吗 像这样:

function Animal(name) {
  this.name = name
}

Animal.prototype.generateToys = function(numberOfToys) {
  if(numberOfToys == 1) {
    this.createToys();
  } 
  else {
    this.createToys();
  }

  function createToys() {
    ...
    ...
    ...
  }
}

或者您会像下面这样将其创建为方法(原型(prototype)):

Animal.prototype.createToys = function() {
  ...
  ...
  ...
}

什么会更好,为什么? :)

最佳答案

如果将它放在 generateToys() 方法中,每次调用该方法时都会重新声明它,然后在该方法完成时将其从作用域中移除。大多数时候这不是您想要的,因此您更愿意将其创建为单独的方法。

关于JavaScript 最佳实践原型(prototype),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44163935/

相关文章:

javascript - 我希望动态加载我的选项卡(仅在单击时)

javascript - React Native 中的堆栈导航器

java - 如何在java中使用扫描仪时删除ArrayList中的特定对象

Javascript Prototype 链的副作用

JavaScript - 原型(prototype)方法未定义

javascript - 突出显示所有其他列表元素

javascript - politico.com 如何在复制的文本中插入超链接?

java - 逐行读取文件,同时将每行的对象存储在数组中

javascript - JavaScript 对象可以返回值和控制台日志吗?

javascript - 在 Javascript 中重置原型(prototype)。为什么会破坏原型(prototype)继承链呢?