Javascript:轻量级数据保持器的原型表示
我正在阅读关于面向对象的JS,并试图了解基于原型的继承在我的案例中是否是最好的。我刚刚读了Eric Elliot关于这种方法优于经典模式的文章 在我的例子中,我必须建模,比如说10000个名为Javascript:轻量级数据保持器的原型表示,javascript,Javascript,我正在阅读关于面向对象的JS,并试图了解基于原型的继承在我的案例中是否是最好的。我刚刚读了Eric Elliot关于这种方法优于经典模式的文章 在我的例子中,我必须建模,比如说10000个名为Shape的类型或类的实例。我需要每个对象保持它的状态,比如说size。使用克隆来扩展原型(Eric文章中的第二种方法)会导致这些方法也克隆吗??以他为例, var proto = { hello: function hello() { return 'Hello, my name is ' +
Shape
的类型或类的实例。我需要每个对象保持它的状态,比如说size
。使用克隆来扩展原型(Eric文章中的第二种方法)会导致这些方法也克隆吗??以他为例,
var proto = {
hello: function hello() {
return 'Hello, my name is ' + this.name;
}
};
var george = _.extend({}, proto, {name: 'George'});
在上述情况下,创建10000个实例是否会将hello克隆到所有实例中
如果是这样的话,对我来说什么是最好的方法。我的type/class
包含10个基本值,更多的是作为数据的持有者,而不是抽象行为。要求,
每个实例都保留私有数据
有一些常用的方法来获取/设置这些数据(或只是属性)
易于转换为Json
在上面的代码中,您正在使用(您需要下划线库)方法。如果您创建这样的对象
for (var i = 0; i < 1000; i ++) {
var obj = _.extend({}, proto, {name: 'George'});
}
{
{name: 'George'},
hello: function hello() {
return 'Hello, my name is ' + this.name;
}
};
但下面两个方法在所有1000个对象中共享相同的hello函数。因此,根据你的意愿选择其中任何一个
经典方法。
var proto = function (name) {this.name = name || ""};
proto.prototype.hello = function hello() {
return 'Hello, my name is ' + this.name; }
var p2 = new proto({name: "george"});
p2.hello() //"Hello, my name is george"
使用Object.create()
在开始使用之前,您应该有清楚的了解。它仅在现代浏览器上受支持。下面的链接可以帮助您更好地理解这一点
,
在上面的代码中,您正在使用(您需要下划线库)方法。如果您创建这样的对象
for (var i = 0; i < 1000; i ++) {
var obj = _.extend({}, proto, {name: 'George'});
}
{
{name: 'George'},
hello: function hello() {
return 'Hello, my name is ' + this.name;
}
};
但下面两个方法在所有1000个对象中共享相同的hello函数。因此,根据你的意愿选择其中任何一个
经典方法。
var proto = function (name) {this.name = name || ""};
proto.prototype.hello = function hello() {
return 'Hello, my name is ' + this.name; }
var p2 = new proto({name: "george"});
p2.hello() //"Hello, my name is george"
使用Object.create()
在开始使用之前,您应该有清楚的了解。它仅在现代浏览器上受支持。下面的链接可以帮助您更好地理解这一点
,这是Eric给出的一个大致相同的答案。无论如何,上面看起来更简单。这是Eric给出的一个大致相同的答案。总之,上面看起来更简单。可以使用主干库吗?对不起,我不使用主干。我确实使用jQuery,但想知道更多的东西可以在纯javascript中使用。可以使用主干库吗?对不起,我不使用主干。我确实使用jQuery,但想知道更多的是如何在纯javascript中使用jQuery。