2

使用这个

var Class1 = function() {       
        this.test1 = function() {
        };
    };

和以下

function Class1() { 
};

Class1.prototype.test1 = function() {

};

这两者有区别吗?

4

4 回答 4

3

第一个为每个类实例制作一个单独的函数副本。
它还允许函数使用构造函数中的闭包变量。

于 2012-06-04T14:25:58.223 回答
0

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.

于 2012-06-04T14:46:47.420 回答
0

是的,有。看

对于两个(独立的)差异。

于 2012-06-04T14:30:16.490 回答
0

存在差异也会影响性能。

第一个将为创建的类的每个实例添加函数,而后者不会。对于后一种方法,JavaScript 将查看prototype对象链并返回所需的方法,test1在您的情况下。

于 2012-06-04T14:26:42.130 回答