Таким образом, я изучаю JavaScript и опытное совершенство всех it, и я озадачен по следующему:
Скажите, что у меня есть это
var Animal = function (a, b, c, d, e, f, g, h, i, j, k , l, m, n){
this.a = a;
this.b = b;
//...etc...
};
var x = new Animal(1,2,3....);
Теперь, как я создаю функцию конструктора CAT, которая наследовалась функции конструктора Животных, таким образом, что я не должен вводить супер длинные споры снова?
Другими словами, я не хочу делать это:
var Cat = function (a, b, c, d, e, f, g, h, i, j, k , l, m, n){
this.a = a;
this.b = b;
//...etc...
};
// inherit functions if any
Cat.prototype = new Animal;
var y = new Cat(1,2,3....);
Заранее спасибо! j
Как это?
var Cat = Function (a, b, c, d, e, f, g, h, i, j, k , l, m, n){
Animal.apply(this, arguments);
};
// inherit functions if any
Cat.prototype = new Animal;
var y = new Cat(1,2,3....);
Быстро утомительно запоминать порядок и значение длинных списков таких параметров.
Вы можете добавить некоторую гибкость, если передадите свойства нового Animal как объекта - , и это не так сложно запомнить, как длинный список индексов аргументов.
function Animal(features){
for(var p in features){
this[p]= features[p];
}
};
You can give every cat some basic cat features automatically,
and add specifics when you make a new cat.
function Cat(features){
for(var p in features){
this[p]= features[p];
}
}
Cat.prototype= new Animal({legs: 4, eats: 'meat', type: 'mammal', whiskers: true});
Cat.prototype.constructor=Cat;
var Tiger= new Cat({tail: true, hunter: true});
Tiger begins with these properties:
tail: true
hunter: true
legs: 4
eats: meat
type: mammal
whiskers: true