美文网首页
js 普通对象继承

js 普通对象继承

作者: 飞鱼Q | 来源:发表于2016-02-01 18:18 被阅读0次

//非构造函数继承

    var persion = {
        age:24
    }
    
    var student = {
        identity:'student'
    }
    
    //1.object方法
    function object(o){
        function f(){};
        f.prototype = o;
        return new f();
    }
    
    var student = object(persion);
    console.log("identity:"+student.identity+" age:"+student.age);
    //这里的identity是undefined 因为student自己的属性被覆盖掉了,需要在继承后才加上自己的属性
    student.identity = "student";
    console.log("identity:"+student.identity+" age:"+student.age);
    
    //2浅拷贝方法
    function extendCopy(parent){
         var c = {};
        for(var i in parent){
            c[i] = parent[i];
        }
        return c;
    }
    
    /*
    这种方法如果遇到parent属性也是一个对象或数组的时候,
    属性值其实是一个内存地址,这样会出parent改变那个对象属性,继承的子类也会跟着变
    这样就不准了
     */
    
    //深拷贝——递归调用浅拷贝就能实现深拷贝
    function deepCopy(c,parent){
        var c = c||{};
        for(var i in parent){
            if(typeof c[i] == "ojbect"){
                c[i] = (parent[i].constructor === Array)?[]:{};
                deepCopy(c[i],parent[i]);
            }else{
                c[i] = parent[i];
            }
        }
        return c;
    }
    
    var a = {
        name:"a"
    }
    var p = {
        age:24,
        role:{code:404,msg:"msg"}
    }
    deepCopy(a,p);
    a.name = "I am a";
    console.log("name:"+ a.name+" code:"+ a.role.code+" msg:"+ a.role.msg+" age"+ a.age);

参考自:阮一峰

相关文章

  • js 普通对象继承

    //非构造函数继承 参考自:阮一峰

  • JS原型

    原型是一个对象,其他对象可以通过它来实现属性继承一、JS对象分两种:普通对象object和函数对象function...

  • JavaScript继承学习总结(面试篇)

    说继承之前先说几个概念。 原型和原型链 在JS中万物皆对象,对象有分函数对象(Function),普通对象(Obj...

  • JS汇总---面向对象&数组

    面向对象 js原型链的继承 静态属性怎么继承 js原型链以及特点 面向对象有哪几个特点 封装,继承,多态 对象的继...

  • js对象的三种继承方式

    js对象的三种继承方式转载 2017年06月23日 15:07:56 13300一,js中对象继承对象的js中有三...

  • JS中继承的实现

    JS中继承的实现 #prototype (js原型(prototype)实现继承) 全局的Function对象没有...

  • JS对象和继承

    JS对象和继承 JS是个无类的语言,因此对于对象构造器(类)和对象的继承就值得我们研究了。本文讲述JS中构造器的表...

  • js 对象继承

  • js 对象继承

    内容来自《JavaScript高级程序设计》第三版第6章第3节 原型链 ECMAScript中描述了 原型链的概念...

  • js 对象继承

    js变量可分为两部分,基本类型和引用类型。 基本类型:基本类型比较简单,包括Undefined,Null,Bool...

网友评论

      本文标题:js 普通对象继承

      本文链接:https://www.haomeiwen.com/subject/grmskttx.html