4 js之extends2

2018-05-28  本文已影响0人  一枝妖孽
/**
 * 这继承怕是没谁了======================
 * 
 * 实现的功能:
 * 
 * 当该函数有一个参数的情况下创建类
 * 当该函数有两个参数的情况下,第一个参数是基类,第二个参数就是在基类的基础上添加内容
 * 
 */
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);

上一篇下一篇

猜你喜欢

热点阅读