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. 错误: ‘shared_ptr’ in namespace ‘std’ does not name a type的解决方法。

    这是因为要使用C++11的标准编译,而catkin_make时无法识别出来. 修改方法是在CMakeLists.txt文件里面添加: set(CMAKE_CXX_FLAGS "${CMAKE ...

  2. git命令之git mergetool vi非正常退出.swp删除不了的问题

    1.git   pull命令产生无法merge的错误 使用了 git  mergetool命令然后...傻逼了 进入了vi操作界面,不会操作,非正常退出... 然后就产生了.swp相关文件,死活删除不 ...

  3. springmvc 开发流程图

  4. tensorflow--mnist注解

    我自己对mnist官方例程进行了部分注解,希望分享出来有助于入门选手更好理解tensorflow的运行机制,可以拷贝到IDE再调试看看,看看具体数据流向还有一部分tensorflow里面用到的库.我用 ...

  5. 写一个python脚本监控在linux中的进程

    在虚拟机中安装Linux中的CentOS7系统 https://baijiahao.baidu.com/s?id=1597320700700593557&wfr=spider&for= ...

  6. router-link 返回上页 和 新窗口打开链接

    1.如果使用了Vue-router的话,就可以用 this.$router.go(-1) 实现返回: 2.如果没使用vue-router,就可以用 window.history.go(-1) 实现返回 ...

  7. 基于spark-streaming实时推荐系统

    基于spark-streaming实时推荐系统(一) 基于spark-streaming实时推荐系统( 二) 基于spark-streaming实时推荐系统(三)

  8. 中小学Python编程语言教学

    中小学Python编程语言教学 作为一名高中信息技术老师,被技术的发展潮流推动着,不断更新教学内容和方法,以适应快速发展的信息社会. 以前的中小学信息技术课程,老师们各显神通,身怀绝技,教PS,Fal ...

  9. 初识C语言 (四)

    分支结构 if语句 C语言中的分支结构语句中的if条件语句,简单if语句的基本结构如下: 其语义是:如果表达式的值为真,则执行其后的语句,否则不执行该语句. 其过程可表示为下图 实例: if(resu ...

  10. 【转载】django 过滤器 、日期格式化参数

    过滤器相关: 一.形式:小写{{ name | lower }} 二.串联:先转义文本到HTML,再转换每行到 标签{{ my_text|escape|linebreaks }} 三.过滤器的参数显示 ...