我想知道如何让child
从自身和base
获取原型方法。
此外,有任何方法可以做到
child.prototype = Object.create(base.prototype);
child.prototype.constructor = child;
在child
IIFE内部,而不是在其外部。
var base = (function(){
var cls = function(){
};
cls.prototype = {
doStuff: function(){
console.log('dostuff');
}
};
return cls;
})();
var child = (function(){
var cls = function(){
base.call(this);
};
cls.prototype = {
doOtherStuff: function(){
console.log('doOtherStuff');
}
};
return cls;
})();
child.prototype = Object.create(base.prototype);
child.prototype.constructor = child;
var b = new child();
b.doStuff();
b.doOtherStuff();
答案 0 :(得分:1)
我想知道如何让孩子从自己和基地获得原型方法。
child.prototype = Object.create(base.prototype);
。cls.prototype = ...
,而是一次向cls.prototype
添加一个属性。此外,有任何方法可以在
child
IIFE内部进行[继承],而不是在其外部。
当然,只需使用cls
代替child
。
答案 1 :(得分:1)
定义一个函数http://jsfiddle.net/9uGsA/1/
function inherit(base, child, proto) {
child.prototype = Object.create(base.prototype);
child.prototype.constructor = child;
proto&&Object.keys(proto).forEach(function(key){
child.prototype[key] = proto[key];
})
}
并像这样使用
var child = (function(){
var cls = function(){
base.call(this);
};
inherit(base, cls, {doOtherStuff: function(){
console.log('doOtherStuff');
}});
return cls;
})();
答案 2 :(得分:0)
新的更简单的答案:
result.Search