Я читал о наследовании в Javascript и придумал создание конструкторов и определение каждого прототипа конструкторов. Я создал функцию prototypeExtend
, которая будет проходить через каждый прототип конструкторов и добавлять их в прототипы основных конструкторов.Наследование Javascript с использованием прототипа, что является практическим способом?
Это практический способ достижения наследования?
function prototypeExtend() {
var cMain = arguments[0].prototype;
for(var i=1; i<arguments.length; i++){
var cTemp = arguments[i].prototype;
for(var k in cTemp){
if(cTemp.hasOwnProperty(k)){
cMain[k] = cTemp[k];
}
}
}
return cMain;
}
function Class1() {}
Class1.prototype = {
el1:null,
fun1:function(str){
console.log(str + " from Class1");
},
setEl1:function(value){
this.el1 = value;
},
getEl1:function(){
return this.el1;
}
}
function Class2(){}
Class2.prototype = {
el2:"blah",
fun2:function(str){
console.log(str + " from Class2");
}
}
function Class3(){}
Class3.prototype = {
el3:"dah",
fun3:function(str){
console.log(str + " from Class3");
},
fun1:function(str){
console.log(str + " from Class3");
}
}
prototypeExtend(Class2, Class1, Class3);
var obj = new Class2;
console.log(obj);
Это может оказаться вопросом мнения. Для меня: нет очень много способов сделать для читаемого кода. Вот почему многие инструменты JS, такие как Dojo, добавляют более совершенную систему набора текста. Моим любимым, однако, является язык сшитого языка TypeScript (http://www.typescriptlang.org/) – Katana314