首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

帮忙看个js代码,看看有关问题在哪,多谢你们

2013-03-19 
帮忙看个js代码,看看问题在哪,谢谢你们function Base() {}Base.extend function(obj) {//第一层构造var

帮忙看个js代码,看看问题在哪,谢谢你们


        function Base() {}

Base.extend = function(obj) {
//第一层构造
var Class = obj['constructor'];
//遍历并给于
for(var i in obj) {
if(i != "constructor") {
Class.prototype[i] = obj[i];
}
}
//提供base方法调用父类的构造
Class.prototype.base = function() {
obj['constructor'].apply(this, arguments)
}
Class.entend = function(objChild) {
var ChildClass = objChild['constructor'];
//遍历并给于
for(var i in objChild) {
if(i != "constructor") {
ChildClass.prototype[i] = objChild[i];
}
}

return ChildClass;

}
return Class;
}

var Person = Base.extend({
constructor: function(name) {
this.name = name;
},
getName : function() {
return this.name;
}
});

var User = Person.extend({
constructor: function(name, password) {
this.base(name);
this.password = password;
},
getPassword : function() {
return this.password;
}

});


var user = new User("Jack", "123");

alert(user.getName())

constructor function javascript
[解决办法]

    function Base() { }

    Base.extend = function (obj) {
        //第一层构造
        var Class = obj['constructor'];
        //遍历并给于
        for (var i in obj) {
            if (i != "constructor") {
                Class.prototype[i] = obj[i];
            }
        }
        //提供base方法调用父类的构造
        Class.prototype.base = function () {
            obj['constructor'].apply(this, arguments)
        }
        //Class.entend//方法名称写错
        Class.extend = function (objChild) {
            var ChildClass = objChild['constructor'];
            //===============================没有添加之类的base方法
            //提供base方法调用父类的构造
            ChildClass.prototype.base = function () {
                objChild['constructor'].apply(this, arguments)


            }
            //===============================没有继承父类的prototype方法
            for (var i in Class.prototype) {
                ChildClass.prototype[i] = Class.prototype[i];
            }
            //===============================
            //遍历并给于
            for (var i in objChild) {
                if (i != "constructor") {
                    ChildClass.prototype[i] = objChild[i];
                }
            }

            return ChildClass;

        }
        return Class;
    }

    var Person = Base.extend({
        constructor: function (name) {
            this.name = name;
        },
        getName: function () {
            return this.name;
        }
    });
    var User = Person.extend({
        constructor: function (name, password) {
            this.base(name);
            this.password = password;
        },
        getPassword: function () {
            return this.password;
        }

    });

    var user = new User("Jack", "123");
    alert(user.getName())

热点排行