js多层继承 super方法

来源:互联网 发布:程序员赚钱吗 编辑:程序博客网 时间:2024/05/21 15:44

继承的时候我们需要调用父类的同名方法,这里面提供了一个简单的实现方式,供大家一起参考。

_gs_super 方法是扩展与最顶层父类的原型链上。

   RootView.prototype._gs_super = function() {        var caller = arguments.callee.caller;        var scope = null;        var scan = this.__proto__;        var funcName;        search: while (scope == null && scan != null) {            var names = Object.getOwnPropertyNames(scan);            for (var i = 0; i < names.length; i++) {                if (scan[names[i]] === caller) {                    scope = scan;                    funcName=names[i];                    break search;                }            }            scan = scan.constructor.__super__;        }        if (scan.constructor.__super__[funcName]) {            return scan.constructor.__super__[funcName].apply(this,arguments);        }    };


原创粉丝点击