1.Object新增一个方法,Object.create();,用来以一个对象为基础创建另一个对象,新建的对象的__proto__指向基础对象

 var obj = {name:'maycpou',age:18};
        var obj1 = Object.create(obj,{
            sex:{//新增一个sex属性,该属性在obj1上而不是在__proto__上
                value:'男',//sex属性的值
                writable:true,//sex属性是否为可写的,即是否能用obj1.sex='女'改变属性的值,默认是false
                configurable:true,//sex属性是否可被删除,即是否能用deleteobj1.sex删除sex属性,默认是false
                enumerable:true//sex属性是否是可被列举的,即用for(var i in obj1){console.log(i);}是否能遍历到sex属性,默认是false
            }
        });
 console.log(obj1);
 
2.Object新增一个方法,Object.defineProperties();,用来给一个对象新增属性
  var obj2 = { firstName: 'tom', lastName: 'boston' };
        Object.defineProperties(obj2, {//这个方法用于给一个对象添加属性
            fullName: {//新增的属性名称是fullName
                get: function () {//设置get方法,用来获取新增属性fullName的值
      return this.firstName +' '+ this.lastName;
                },
                set: function (data) {//这个方法在fullName属性即将改变的时候调用,data是即将改变的fullName的值
                    //当使用obj2.fullName = 'jack foo';的时候,并不会直接改变fullName的属性,
                    //而是会调用这个方法,data的值为maycpou
                    var names = data.split(' ');
                    this.firstName = names[0];
                    this.firstName = names[1];
                }
            }
        });
        obj2.fullName='jack foo';
        console.log(obj2.fullName);
上面的写法类似于:var obj2 = {
  firstName: 'tom', 
  lastName: 'boston',
  get fullName(){
    return this.firstName +' '+ this.lastName;    
     }
  set fullName(date){
     var names = data.split(' ');
               this.firstName = names[0];
               this.firstName = names[1];
  }
}

ES5-Object扩展方法的更多相关文章

  1. ES5 Object.create 方法

    Object.create(proto[, propertiesObject])The Object.create() method creates a new object with the spe ...

  2. ES5 Object.defineProperty 方法

    先看一个例子: var o = {}; o.a = 1; // 等待于: Object.defineProperty(o, 'a', { value: 1, writable: true, confi ...

  3. ES5给object扩展的一些静态方法

    1. Object.create(prototype[, descriptors]) : 创建一个新的对象 1). 以指定对象为原型创建新的对象 2). 指定新的属性, 并对属性进行描述 value ...

  4. 在ES5实现ES6中的Object.is方法

    ES6中对象的扩展里面添加了一个Object.is方法,用于比较两个值是否严格相等.内部计算与 === 行为基本一致.那么我们怎么在不支持这个方法的ES5中实现呢? 首先我们需要搞清楚两点,1:Obj ...

  5. .NET:不要使用扩展方法扩展Object对象。

    C#的扩展方法算是一种Minin(掺入)机制,掺入方法有其合理的使用场景,这里说说一种不好的使用场景(个人意见):不要使用扩展方法扩展Object对象.扩展Object会对所有类型的示例有侵入,特别是 ...

  6. 抛弃 .NET 经典错误:object null reference , 使用安全扩展方法? 希望对大家有帮助---Bitter.Frame 引用类型的安全转换

    还是一样,我不喜欢长篇大论,除非关乎我设计思想领域的文章.大家过来看,都是想节省时间,能用白话表达的内容,绝不长篇大论.能直接上核心代码的,绝不上混淆代码. 长期从事 .NET 工作的人都知道..NE ...

  7. Object、Function、String、Array原生对象扩展方法

    JavaScript原生对象的api有些情况下使用并不方便,考虑扩展基于Object.Function.String.Array扩展,参考了prototype.js的部分实现,做了提取和修改,分享下: ...

  8. List<Object>对象集合一些扩展方法

    // 商品集合信息            List<Product> list = new List<Product>()            {               ...

  9. 解决webpack和gulp打包js时ES6转译ES5时Object.assign()方法没转译成功的问题

    在webpack或gulp打包的配置文件中package.json 引入"@babel/plugin-transform-object-assign": "^7.2.0& ...

  10. javascript ES5 Object对象

    原文:http://javascript.ruanyifeng.com/stdlib/object.html 目录 概述 Object对象的方法 Object() Object.keys(),Obje ...

随机推荐

  1. 联想小新潮怎么修改fn热键以及怎么进入bios状态

    联想小新潮怎么修改fn热键 http://www.ylmfwin100.com/ylmfnew/11129.html  怎么进入bios状态  https://zhidao.baidu.com/que ...

  2. Strategic game树形DP解法(Poj1463,Uva1292)

    已经写过本题用二分图的做法,见这儿. 本题的图是一棵树,求最小点覆盖也可以用树形DP的做法. 定义状态f[0/1][u]表示以u为根的子树,u选取/不选最少需要选取多少点来覆盖. 显然 f[0][u] ...

  3. NOIP2012 疫情控制 题解(LuoguP1084)

    NOIP2012 疫情控制 题解(LuoguP1084) 不难发现,如果一个点向上移动一定能控制更多的点,所以可以二分时间,判断是否可行. 但根节点不能不能控制,存在以当前时间可以走到根节点的点,可使 ...

  4. CentOS 7 1810版本不能使用yum 命令

    使用yum install httpd 命令安装Apache 提示错误 annot find a valid baseurl for repobase7x86_64 解决方法: 进入 ls命令寻找类似 ...

  5. Java基础(十二)之包和权限访问

    软件包 软件包解决了两个类名字一样的问题.软件包就是一个"文件夹". 包名的命名规范:1.要求所有字母都小写:2.包名一般情况下,是你的域名倒过来写.比如baidu.com,pac ...

  6. 牛客1080D tokitsukaze and Event (双向最短路)

    题目链接:https://ac.nowcoder.com/acm/contest/1080/D 首先建两个图,一个是权值为a的图,一个是权值为b的图. 从s起点以spfa算法跑权值为ai的最短路到t点 ...

  7. 题解 SP5271 XOINC - A Coin Game

    SP5271 XOINC - A Coin Game 双倍经验:P2964 [USACO09NOV]硬币的游戏A Coin Game O3做法(TLE):枚举i,j,k,即剩下i枚金币,上一轮选了j枚 ...

  8. luckyframe的一些坑

    建议使用idea运行 1.第一次运行访问http://localhost:8088/LuckyFrameServer 2.luckyframe提示“javax.net.ssl.SSLKeyExcept ...

  9. XFire调用CXF参数为Null的问题

    最近,领导分配了一个任务,做接口联调.情况是这样,对方客户升级了接口采用CXF,而我们还是用的XFire1.2.6,首先就遇到了这个问题:XFire调用CXF参数为Null的问题 . 在网上搜了一大堆 ...

  10. django 创建管理员用户

    7.2 create 创建管理员用户: python manage.py run server python manage.py createsuperuser password :123456789 ...