我想創建一個Javascript類/對象,讓我有不同的方法:的Javascript靜態方法繼承
Model類
Model.all()
»靜態方法Model.find()
»靜態方法Model delete()
»實例方法Model save()
»實例方法Model.create()
»靜態返回一個新的模型的實例
對於靜態方法,我可以用它們定義:
Model.staticMethod(){ method }
而實例方法是更好地使用:
function Model(){
this.instanceMethod = function(){}
}
然後創建一個新實例
或使用原型?
var m = function Model(){
}
m.prototype.method() = function() {
}
現在,讓我們說,我想創建一個基於模型的一個新的類,如何繼承不僅是它的原型,而且它的靜態方法?
編輯:
,以避免混淆這或多或少是我想創造什麼:
http://activejs.org/activerecord/index.html和http://activejs.org/activerecord/ActiveRecord/Model/index.html
在那裏我可以使用類似的東西
定義一個新模式var User = ActiveRecord.create({
username: '',
password: '',
post_count: 0,
profile: ''
}
然後創建實例
種var jessica = User.create({
username: "Jessica",
password: "rabbit"
});
使用實例方法,如
jessica.save();
而且類方法:
User.findByUsername('Jessica');
是的,你應該使用'prototype',否則你爲每個實例化的對象創建新的函數對象。 – Esailija
[在Javascript中使用'prototype'與'this'?](http://stackoverflow.com/questions/310870/use-of-prototype-vs-this-in-javascript) –
關於你的最後一個問題,你可能必須遍歷你添加到'Model'的方法,並將它們分配給新的類。 –