6.3 删除内容

  delete运算符可以删除对象的属性。

  delete运算符只能删除自有属性,不能删除继承属性。

  delete表达式删除成功或没有任何副作用时,它返回true.

6.4 检测属性

  用in\hasOwnProperty\propertyIsEnumberable\!==

  in 对于对象的自有属性或继承属性中包含有这个属性的返回true.

  hasOwnProperty方法用来检测 给定的名字是否是对象的自有属性

  propertyIsEnumerable()是hasOwnProperty增强版,只检测到是自有属性且这个属性的可枚举性为true.

  还可以用in 和 !==判断属性,但对象的值不能为undefined

6.5 枚举属性

  for ( p in o )

    {

     if (!o.hasOwnProperty(p))  continue;

    }

  for ( p in o )

    {

    if ( typeof o[p] === "function" ) continue;

    }

 例6-2

  /*  

  把p中的可枚举属性复制到o中,并返回o

  如果o和p中含有同名属性,则覆盖o中的属性

  这个函数并不处理getter和setter以及复制属性

  */ 

  function extend(o,p){

          for(prop in p)

    {

      o[prop]=p[prop]

    }

    return o;

  }

/*将p中的可枚举属性复制到o中,并返回o

 如果o和p中有同名的属性,o中的属性将不受影响

这个函数并不处理getter和setter以及复制属性

*/

    function merge(o,p)

    {

      for (prop in p ){

        if (o.hasOwnProperty(prop)) continue;       //这里的书里写错了

        o[prop]=p[prop]

      }

      return o;

    }

/*如果o中属性在p中没有同名属性,则从o中删除 这个属性返回o*/

      function restrict(o,p){

        for(prop in o){

          if(!(prop in p)) delete o[prop];

        }

        return o;

      }

/*如果o中属性在p中有同名属性,则从o中删除 这个属性返回o*/

       function subtract(o,p)

        {

          for(prop in p)

            {

               delete o[prop];

            }

        }

/*返回一个新对象,这个对象同时拥有o的属性和p属性如果o和p中有名属性,使用p中的属性值*/

    function union(o,p){

        retrun extend(extend({},o),p);

    }

/*返回一个新对象,这个对象拥有同时在o和p中出现的属性很像求o和p的交集,但p中属性的值 被忽略*/

    function intersection(o,p){ return restrict(extend(extend({},o),p);}

/*返回一个数组,这个数组包含的是o中可枚举的自有属性的名字*/

    function keys(o){

    if ( typeof o !== "object" ) throw TypeError();

    var result=[];

    for ( var prop in o ){

        if(o.hasOwnProperty(prop))  result.push(prop);

    }

    return result;    

}

第六章 对象-javaScript权威指南第六版(三)的更多相关文章

  1. 第六章 对象-javaScript权威指南第六版

    什么是对象? 对象是一种复合值,每一个属性都是都是一个名/值对.原型式继承是javaScript的核心特征. 对象常见的用法有,create\set\query\delete\test\enumera ...

  2. 第六章 对象-javaScript权威指南第六版(四)

    6.6 属性getter和setter 对象属性是由名字.值和一组特性(attribute)构成的. getter和setter定义的属性称做"存取器属性"(accessor pr ...

  3. 第六章 对象-javaScript权威指南第六版(二)

    通过原型 继承创建一个新对象,对于这一个函数的有说不出的感觉,看看语句都很简单,深层次的东西就是不知道 function inherit(p) { if(p == null)  throw TypeE ...

  4. 《JavaScript权威指南 第六版 中文版》(一)

    <JavaScript权威指南 第六版 中文版> 第二章 词法结构 2.1字符集 JavaScript是使用Unicode字符集编码写的. 2.1.1区分大小写 JavaScript是区分 ...

  5. 《JavaScript权威指南(第6版)(中文版)》PDF

    简介自1996年以来,JavaScript的:权威指南已为JavaScript圣经程序员,程序员指南和全面的参考,以核心语言和客户端JavaScript API的Web浏览器定义.第6版包括HTML5 ...

  6. javascript权威指南第6版学习笔记

    javascript权威指南第6版学习笔记 javascript数组.函数是特殊对象 看一点少一点. 3.1.4 hello.js内容是 var x=.3-.2;var y=.2-.1 console ...

  7. JavaScript权威指南(第6版)(中文版)笔记

      JavaScript权威指南(第6版)(中文版)笔记      

  8. 【笔记】javascript权威指南-第六章-对象

    对象 //本书是指:javascript权威指南    //以下内容摘记时间为:2013.7.28 对象的定义: 1.对象是一种复合值:将很多值(原始值或者对象)聚合在一起,可以通过名字访问这些值. ...

  9. Note | Javascript权威指南[第六版] 第1章:Javascript概述

       JavaScript是一门高端的.动态的.弱类型的编程语言,非常适合面向对象和函数式的编程风格.JavaScript的语法源自Java,它的一等函数(first-class function)来 ...

随机推荐

  1. 分页之 skip(pageindex*(index-1).take(size).Tolist();

    grdView.DataSource = Select().Skip(pageSize * (start - 1)).Take(rows).ToList();这个分页性能上并不高下面是我的分页 1 2 ...

  2. mysql—增删改查语句总结

    关于MySQL数据库——增删改查语句集锦 一.基本的sql语句 CRUD操作: create 创建(添加) read 读取 update 修改 delete 删除 .添加数据 ,'n001','201 ...

  3. TP5框架,开源小程序商城源码,前端+后台完整版

    CRMEB微信公众号商城小程序商城数据同步,带积分.优惠券.秒杀.砍价.分销等功能,更是一套方便二次开发的框架 开源地址:https://github.crmeb.net/u/crmeb 商城演示后台 ...

  4. UE4物理笔记

    基本 物理资源随骨骼创建,可添加到骨骼网格上. 物理材质可添加到材质或组件或物理资源上. 通过配置PrimitiveComponent组件的Collision Presets值,可实现自定义的碰撞忽略 ...

  5. 有关mysql索引

    1.首先我们需要明确一下什么是索引以及为什么要使用索引: 索引在MySQL中也叫做“键”,是存储引擎用于快速找到记录的一种数据结构.在生产环境中,对于数据库我们最常进行的是查询的操作,而当我们的数据非 ...

  6. ueditor复制文本有多余的空行问题

    今天从ueditor中复制文本,粘贴到记事本中发现每一行后面都多了一个空行. Ueditor中的文本如图: 本来只有三行,全选复制所有内容,再粘贴到记事本中发现有每一行文本后面都有多余的空行: 如果我 ...

  7. js变量类型和计算

    # js入门基础-变量类型和计算 ` --首先由于我使用了一个不太合格的markdown来编写来文章,所以在移动端阅读不要太方便,建议移动端使用横屏模式或pc端阅读,当然如果你有平板那是最好的. -- ...

  8. iTOP-4412/4418/6818开发板-fastboot烧写脚本

    在 iTOP-4412,4418,6818 开发板烧写的时候,使用的是 fastboot 工具. fastboot 工具需要在 cmd.exe 中调用,每次都需要输入烧写命令,这样步骤有点多.在程序员 ...

  9. static 关键字 静态成员变量及静态成员函数

    static类成员 类成员类似于C语言的全局变量,但是与全局变量又有所不同,例如,全局变量是可以被任何的用户代码所修改,而且全局变量破坏了对象的封装性. 使用类的 static 成员的优点 使用 st ...

  10. The Ethereum devp2p and discv4 protocol Part I

    描述 本文章分上下两篇 上篇:讲述以太坊devp2p与disc4节点发现协议 下篇:实践篇,实现如何获取以太坊所有节点信息(ip,port,nodeId,client,type,os) 正文 devp ...