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. Jenkins实践之入门体验

    官网:https://jenkins.io/ 持续集成,快速发布是DevOps实践的最好方式. 目录 准备工作 下载/安装/启动 基础配置 插件配置 构建第一个Java项目 部署项目 准备工作 在使用 ...

  2. Spring cloud gateway

    ==================================为什么需要API gateway?==================================企业后台微服务互联互通, 因为 ...

  3. element ui change 传递带自定义参数

    @change="((val)=>{changeStatus(val, index)})" https://www.cnblogs.com/mmzuo-798/p/10438 ...

  4. iMX6Q开发板的EIM接口的配置可以与FPGA通讯-交换数据-最常用的接口配置

    最近基于迅为的i.mx6Q开发板进行了一个FPGA项目的开发,下面给大家介绍一下EIM接口的配置,包括引脚的的选择和寄存器的配置 For the usage of WEIM on i.MX6, you ...

  5. IO流的操作规律。

    1.  明确源和目的 源代表输入流: InputStream, Reader 目的代表输出流: OutputStream, Writer 2. 操作数据是否纯文本 纯文本:字符流 非纯文本: 字节流 ...

  6. java平台学习笔记

    java程序从编写源码开始到程序执行一共有三个阶段,编写期,编译期,运行期. 通常,人们都希望自己的程序更快(不仅仅是执行更快,也有编写更快),因此java在不断更新. java源码先通过javac编 ...

  7. 安装版本( 相关关系 Vue SSR 指定版本)

    1. 关于 brew mac包管理器 终端安装 /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebr ...

  8. DC综合简单总结(2)

    DC综合简单总结(2) 建立时间和保持时间和数据输出延时时间 一.概念 建立时间和保持时间都是针对触发器的特性说的. 建立时间(Tsu:set up time) 是指在触发器的时钟信号上升沿到来以前, ...

  9. 【转】web.xml中的contextConfigLocation在spring中的作用

    一.spring中如何使用多个xml配置文件 1.在web.xml中定义contextConfigLocation参数,Spring会使用这个参数去加载所有逗号分隔的xml文件,如果没有这个参数,sp ...

  10. git(windows)

    windows下比较比较好用的git客户端: 1. msysgit + TortoiseGit(乌龟git) 2. GitHub for Windows 3. Git Extensions