Javascript类构造函数和原型

时间:2016-11-17 06:03:42

标签: javascript

function operation(a, b){                                                                     
this.width = a;  
this.height = b;    
}

var pro1 = new operation(10, 15);  
pro1.color = "black";

有人可以在这段代码中告诉我,什么是构造函数什么是类,什么是原型

1 个答案:

答案 0 :(得分:0)

JS中没有类,但通常使用new运算符实例化新对象的函数称为constructor/class。因此,在您的示例中,此operation函数为constructor/class

function operation(a, b){}

将构造函数的名称大写是一个很好的约定。您可以在ES6中看到class这样的单词:

class Operation {

}

然而,它仍然是一个功能,它是为方便起见而添加的:

typeof Operation === "function"; // true

Prototype只是一个JavaScript对象,它使用内部链接链接到另一个JavaScript对象(通常是 proto )。所以,你有一个对象:

var o = {method: function(){}}

它可以链接到这样的其他对象:

var another = {}
Object.setPrototypeOf(another, o);

链接后,您可以从链接对象访问原型对象的属性,如下所示:

another.method(); // will work

可以通过将原型设置为.prototype的{​​{1}}属性来自动添加原型。在您的代码中,您没有在代码中自己定义原型,但是,它仍然由JS引擎创建,您可以使用此代码查看它:

constructor/class

创建时,它指向函数本身:

operation.prototype