4 js之extends2

/**
 * 这继承怕是没谁了======================
 * 
 * 实现的功能:
 * 
 * 当该函数有一个参数的情况下创建类
 * 当该函数有两个参数的情况下,第一个参数是基类,第二个参数就是在基类的基础上添加内容
 * 
 */
function extend(obj,prop){
    function F(){
        
    }
    /**
     * 情况一:obj是一个json格式的对象
     * 将 obj中的key value 赋值到 F的原型上
     */
    if(typeof obj =="object"){
        for (var name in obj) {
            F.prototype[name]=obj[name];
        }
    }else{
        //第二次 
        /**
         * 情况二:obj是一个函数
         * 将 obj中的prototype 赋值到 F的原型上
         * 并将 prop的 key value赋值到 F的原型上
         * 
         */
        F.prototype=obj.prototype;
        for (var name in prop) {
            F.prototype[name]=prop[name];
        }
    }
    return F;
}

//一
var Person=extend({
    name:'namemingcheng',
    id:6
});

//二
var SurPerson=extend(Person,{
    sex:'aa'
});

/**
 * sp拥有Person和SurPerson的属性
 */
var sp=new SurPerson();

alert(sp.name);
alert(sp.id);
alert(sp.sex);

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容