假设:
var x = function () {
};
x.prototype = { abc: 25 };
有人可以向我解释这意味着什么。这可以在没有.prototype的函数内完成吗?
var x = function () {
// something here ?
};
答案 0 :(得分:2)
原型是类模型在JavaScript中的工作方式 - 您创建了一个类x
,其属性abc
默认为25
:
var obj = new x();
alert(obj.abc); // 25
函数x
是类构造函数,在创建该类的新实例时可以调用它并可以初始化它。这当然意味着您可以在那里设置abc
属性:
var x = function()
{
this.abc = 25;
};
var obj = new x();
alert(obj.abc); // 25
然而,这应该是效率较低的方法:
ECMAScript Harmony有nicer syntax用于定义类和原型,但是这个尚未在任何浏览器中实现:
class x {
constructor() {
...
}
public abc = 25;
}
这相当于定义原型的代码,只是将相关操作分组得更好。