var x = function() {
};
x.prototype = { abc: 25 };
有人能向我解释这是什么意思。这可以在没有.prototype的函数中完成吗?
var x = function() {
// something here ?
};
var x = function() {
};
x.prototype = { abc: 25 };
有人能向我解释这是什么意思。这可以在没有.prototype的函数中完成吗?
var x = function() {
// something here ?
};
原型是多么的类模型工作在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的和谐有nicer syntax定义类和原型,不过这个人是不是在任何浏览器中实现尚未:
class x {
constructor() {
...
}
public abc = 25;
}
这相当于你的代码定义的雏形,只是将相关的操作好一点。
因此,定义函数时我无法做到这一点?我需要稍后添加原型? –
是的。我不会叫x类,但它是一个构造函数 –
@SamanthaJ:我更新了我的答案。总结:不,你不能一次定义构造函数和原型,尽管计划中有更好的语法。是的,你可以在构造函数中定义属性,但这种方法有缺点。 –
下面应该解释很多:http://stackoverflow.com/questions/16063394/prototypical-inheritance-writing-up/16063711#16063711原型保存内存和CPU以及使您能够使用可识别的OO模式 – HMR
您可以在构造函数中执行'this.abc = 25',这大致相同。 –