这两者在Javascript中有什么区别吗?
用这个这两者在Javascript中有什么区别吗?,javascript,Javascript,用这个 var Class1 = function() { this.test1 = function() { }; }; 以及以下 function Class1() { }; Class1.prototype.test1 = function() { }; 这两者之间有区别吗?第一个类为每个类实例创建一个单独的函数副本。 它还允许函数使用构造函数中的闭包变量。存在影响性能的差异 第一个将向所创建类的每个实例添加函数,而后者不会
var Class1 = function() {
this.test1 = function() {
};
};
以及以下
function Class1() {
};
Class1.prototype.test1 = function() {
};
这两者之间有区别吗?第一个类为每个类实例创建一个单独的函数副本。
它还允许函数使用构造函数中的闭包变量。存在影响性能的差异 第一个将向所创建类的每个实例添加函数,而后者不会。对于后一种方法,JavaScript将查看对象的
prototype
链,并返回所需的方法,即您的test1
。是的,有。看
- 及
对于这两个(独立的)差异。在“高效”中使用后一个 JavaScript中的函数是对象。JavaScript中的每个对象都有一个隐藏的状态片段——对另一个对象的引用,称为对象的原型 使用prototype多个对象可以维护对同一prototype对象的引用
这是一个很好的了解js中原型如何工作的方法。这之前已经被问过很多次了……一个问题是否可以重复为两个问题?可能是两个问题的重复