我已经利用Javascript的原型来创建一个易于访问的方法,但是我无法组建一个可用于调用这些方法的正确类。
任何人都知道如何通过使用原型方法实例化对象?
var property = function () {};
property.prototype.get = function () {
return this.value;
};
property.prototype.set = function (value_) {
this.value = value_;
};
////////////////////////////////
var id = function (id) {
property.call(this);
this.value = id;
};
id.prototype = Object.create(property.prototype);
id.prototype.constructor = id;
////////////////////////////////
var b = new id(5);
var d = new id('A');
////////////////////////////////
b.get(); //5
d.get(); //A
b.set('a'); //a
d.set('b'); //b
b.get(); //a
d.get(); //b
var property = function(data) {
property.prototype.get = function () {
console.log(this.value);
return this.value;
};
property.prototype.set = function (value_) {
this.value = value_;
};
return{
id: function() {
//code here
},
foo: function() {
//code here
},
data: function() {
//code here
},
var property = function () {
return {
id: function (id) {
VenueContentRow.call(this);
this.value = id;
this.prototype = Object.create(property.prototype);
this.prototype.constructor = this;
}
}
};
property.prototype.get = function () {
console.log(this.value);
return this.value;
};
property.prototype.set = function (value_) {
this.value = value_;
};
////////////////////////////////
var test = new property();
var d = new test.id('A');
////////////////////////////////
d.get();
d.set('b');
d.get();
P.S。 - 如果我的术语引起混淆,请抱歉。
答案 0 :(得分:0)
如果我理解你想要做的是将一个构造函数附加到原型上,那么你可以这样做:
var thing = new Thing();
var otherThing = new thing.OtherThing();
如果是这样,就像将函数附加到原型一样简单:
var property = function(){};
property.prototype.get = function() { ... };
property.prototype.set = function(value_) = { ... };
// Here's your extra constructor
property.prototype.id = function(id) {
this.value = id;
};
property.prototype.id.prototype = Object.create(property.prototype);
property.prototype.id.constructor = property.prototype.id;
或者如果你想要它更清洁:
var id = function(id) {
this.value = id;
};
id.prototype = Object.create(property.prototype);
id.constructor = id;
property.prototype.id = id;