使用这个
var Class1 = function() {
this.test1 = function() {
};
};
和以下
function Class1() {
};
Class1.prototype.test1 = function() {
};
这两者有区别吗?
使用这个
var Class1 = function() {
this.test1 = function() {
};
};
和以下
function Class1() {
};
Class1.prototype.test1 = function() {
};
这两者有区别吗?
第一个为每个类实例制作一个单独的函数副本。
它还允许函数使用构造函数中的闭包变量。
Using the later one in efficient.
Functions in JavaScript are objects. Every object in JavaScript holds a hidden piece of state – a reference to another object known as the object’s prototype.
Using prototype multiple objects can maintain references to the same prototype object.
This is a great reference to know how prototype in js works.
是的,有。看
对于两个(独立的)差异。
存在差异也会影响性能。
第一个将为创建的类的每个实例添加函数,而后者不会。对于后一种方法,JavaScript 将查看prototype
对象链并返回所需的方法,test1
在您的情况下。