javascript代码实例教程-JavaScript类继承实现之一

发布时间:2019-01-21 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了javascript代码实例教程-JavaScript类继承实现之一脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
小宝典致力于为广大程序猿(媛)提供高品质的代码服务,请大家多多光顾小站,小宝典在此谢过。

网上各博客论坛出现了很多JavaScript的类继承方法,浏览了一些,不是没注释,就是没有运行效果,于是自己写了个简洁易懂的版本,附带测试代码在最下面。

刚不小心删除了该文章,因此重新补上,另外加强了示例。

(function() {

Function.PRototyPE.extend = function(baseClass) {

// this is a function object.
VAR oldPrototype = this.prototype, newPrototype = {}, _super = new baseClass();

//inherITs all properties and methods.
for ( var name in _super) {
newPrototype[name] = _super[name];
}

for ( var name in oldPrototype) {
// only override properties in this new Class.
if (oldPrototype.hasOwnProperty(name)) {
// only function need _super.
if (typeof oldPrototype[name] == "function" && typeof _super[name] == "function") {
newPrototype[name] = (function(name, fn) {
return function() {
var tmp = this._super;

// set super method
this._super = _super[name];

var ret = fn.apply(this, arguments);

this._super = tmp;

return ret;
};
})(name, oldPrototype[name]);
}
}
}

this.prototype = newPrototype;

return this;
};
})();

var A = function() {
this.hello = function() {
console.LOG("hello, I'm A");
}
};

var B = function() {};

B.prototype = {
hello : function() {
this._super();

console.log("hello, I'm B");
}
};

B.extend(A);

var C = function() {};

C.prototype = {
hello : function() {
this._super();

console.log("hello, I'm C");
}
};

C.extend(B);

var b = new B();
var c = new C();

//b.hello();
c.hello();

觉得可用,就经常来吧! 脚本宝典 欢迎评论哦! js脚本,巧夺天工,精雕玉琢。小宝典献丑了!

脚本宝典总结

以上是脚本宝典为你收集整理的javascript代码实例教程-JavaScript类继承实现之一全部内容,希望文章能够帮你解决javascript代码实例教程-JavaScript类继承实现之一所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。