function operation(a, b){
this.width = a;
this.height = b;
}
var pro1 = new operation(10, 15);
pro1.color = "black";
有人可以在这段代码中告诉我,什么是构造函数什么是类,什么是原型
答案 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