JavaScript原型函数

时间:2017-01-21 21:39:16

标签: javascript prototype

这些功能有什么区别?有什么优点和缺点?

let Test = function(name) {
  this.name = name;
  this.complete = function() {
    console.log(`completing task${this.name}`)
  }
}

let Test = function(name) {
  this.name = name;
}

Test.prototype.complete = function() {
  console.log(`completing task${this.name}`)
}

1 个答案:

答案 0 :(得分:2)

不同之处在于,您将使用第一个函数创建的每个对象都具有complete函数的单独实例。虽然您将使用第二个函数创建的每个对象将共享相同的complete函数,该函数可以使用Test在您创建的对象的原型中找到。

因此,如果使用第一个函数创建100个对象,则所有这些对象在内存中对complete函数都有不同的引用。而在第二种情况下,您只有一个,因为所有这些对象都会在其原型上找到complete函数。