Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
公共函数和在面向对象Javascript中使用原型添加的函数之间有什么区别_Javascript_Oop_Methods_Prototype - Fatal编程技术网

公共函数和在面向对象Javascript中使用原型添加的函数之间有什么区别

公共函数和在面向对象Javascript中使用原型添加的函数之间有什么区别,javascript,oop,methods,prototype,Javascript,Oop,Methods,Prototype,我试图理解我们写作时的区别: var Foo = function (){ this.name = 'abc'; this.alertName1 = function(){ alert(this.name); } } Foo.prototype.alertName2 = function(){ alert(this.name); } 这两种方法都可用且正确,但何时使用问题是什么?当您向原型添加函数时,无论您实例化Foo多少次,它都只存在于一个位置 在构造函数中添加函数时,每次

我试图理解我们写作时的区别:

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

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

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

当您向原型添加函数时,无论您实例化Foo多少次,它都只存在于一个位置


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

duplicate或在构造函数中可以使用此函数。func=funcName;使用在别处定义的函数,该函数只存在于一个位置。(一个选项,可以与一些条件逻辑一起使用,这些条件逻辑可以从几个可能的函数中进行选择。)是的,尽管您可以将这些条件逻辑放在原型的函数中;-)