zoukankan      html  css  js  c++  java
  • es6对象扩展

    es5传统js对象

    //类竟然是函数   
        function Dog(name,age){
            //构造器 竟然这么随意
            this.name = name;
            this.age = age;
        }
    
        //原型
        Dog.prototype.showAge=function(){
            console.log(this.age);
        }
        Dog.prototype.showName=function(){
            console.log(this.name);
        }
        let kj = new Dog('柯基','1');
    
         function Worker(name,age,job){
            //而且继承不了原型 还得手动拼接
            Dog.call(this,name,age);
            this.job = job;
        }
    
        Worker.prototype = new Dog();
        Worker.prototype.constructor = Worker;
        //注意 箭头函数 ==>特性还是挺坑的
        Worker.prototype.showJob=function(){
            console.log(this.job);
        }
    
        let w = new Worker('泰迪','1','日妥协');
        console.log(w);
        w.showAge();
        w.showJob();
        w.showName();
    

    es6定义对象

    //定义类
            class Dog{
    
                //构造器
                constructor(name,age){
                    //属性和方法
                    this.name=name;
                    this.age=age;
                    this.fn=function(){
                        console.log('哈哈哈');
                    }
                }
                Fn(){
                    console.log('我是不是 原型方法');
                }
            }
    
            let kj = new Dog('kj','0.5');
            console.log(kj);
            kj.Fn();
    

    Object.assign

    把多个对象的属性复制到一个对象中,第一个参数是复制的对象,从第二个参数开始往后,都是复制的源对象

    var nameObj = {name:'zfpx'};
    var ageObj = {age:8};
    var obj = {};
    Object.assign(obj,nameObj,ageObj);
    console.log(obj);
    
    //克隆对象
    function clone (obj) {
      return Object.assign({}, obj);
    }
    

    Super

    通过super可以调用prototype上的属性或方法
    let person ={
        eat(){
            return 'milk';
        }
    }
    let student = {
        __proto__:person,
        eat(){
            return super.eat()+' bread'
        }
    }
    console.log(student.eat());
    

    prop

    直接在对象表达式中设置prototype

    var obj1  = {name:'zfpx1'};
    var obj3 = {
        __proto__:obj1
    }
    console.log(obj3.name);
    console.log(Object.getPrototypeOf(obj3));
    
  • 相关阅读:
    基于Python的数据分析(1):配置安装环境
    Learn flask in the hard way:配置环境的安装
    网络云盘的存储机制
    读书笔记:云计算概念、技术和架构
    小型开发团队中项目管理的方法及原则
    华为专家谈CMDB建设
    2018软件工程第二次作业——个人项目
    福大软工1816 · 第一次作业
    python学习摘要(3)--字符串处理函数
    python学习摘要(4)--列表简单处理
  • 原文地址:https://www.cnblogs.com/heson/p/10015006.html
Copyright © 2011-2022 走看看