【问题标题】:What is the difference between public function and function added using prototype in Object Oriented Javascript在面向对象的Javascript中使用原型添加的公共函数和函数有什么区别
【发布时间】:2014-01-02 07:48:05
【问题描述】:

我试图理解我们写的时候有什么区别:

var Foo = function (){
 this.name = 'abc';
 this.alertName1 = function(){
  alert(this.name);
 }
}

Foo.prototype.alertName2 = function(){
  alert(this.name);
 }

两种方法都可用且正确,但何时使用有什么问题?

【问题讨论】:

标签: javascript oop methods prototype


【解决方案1】:

当你在原型中添加一个函数时,无论你实例化 Foo 多少次,它都只存在于一个地方。

在构造函数中添加函数时,每次实例化都会创建一个新副本,因此效率较低。

【讨论】:

  • 或者在构造函数中你可以有 this.func = funcName; 来使用在别处定义的只存在于一个地方的函数。 (一个可能与从几个可能的函数中选择的条件逻辑一起有意义的选项。)
  • 是的,尽管您可以将条件逻辑放在原型上的函数中;-)
猜你喜欢
  • 1970-01-01
  • 2019-10-02
  • 1970-01-01
  • 2014-03-21
  • 1970-01-01
  • 1970-01-01
  • 2017-03-31
  • 2010-11-07
  • 2011-04-27
相关资源
最近更新 更多