Я хочу, чтобы создать Javascript класс/объект, который позволит мне иметь различный метод:Javascript статический метод наследования
класс Модель
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() {
}
Теперь давайте предположим, что я хочу, чтобы создать новый класс, основанный на модели, как наследовать не только свои прототипы, но и его статические методы?
EDIT:
, чтобы избежать путаницы, это более или менее то, что я хочу создать:
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
Возможный дубликат [Использование прототипа vs. «this» в Javascript?] (Http://stackoverflow.com/questions/310870/use-of-prototype-vs-this-in-javascript) –
Что касается вашего последнего вопрос, вам, вероятно, придется перебирать методы, добавленные в «Модель», и назначать их и новому классу. –