zoukankan      html  css  js  c++  java
  • js-权威指南学习笔记5

    第六章 对象

    1、对象的方法通常是继承的属性。这种原型式继承是JS的核心特征。

    2、除了名字和值之外,每个属性还有一些与之相关的值,称为属性特性——可写/可枚举/可配置数据属性的四个特性——值、可写性、可枚举性、可配置性存取器四个特性——读取、写入、可枚举性、可配置性

    3、除了包含属性之外,每个对象还拥有三个相关的对象特性(对象的三个属性)——对象的原型/对象的类/对象的扩展标记

    4、可以通过对象直接量/关键字new和(ES5的)Object.create()函数创建对象

    5、如果在一个重复调用的函数中的循环体内使用了对象直接量,它将创建很多新对象,并且每次创建的对象的属性值也有可能不同。

    6、没有原型的对象为数不多,Object.prototype是其中之一,它不继承任何属性。

    7、Object.create()函数可以通过传入参数null来创建一个没有原型的新对象,但通过这种方式创建的对象不会继承任何东西,甚至不包括基础方法。如果想创建一个普通的空对象,需要传入Object.prototype

    8、对象查询时使用方括号和一个字符串,看起来像是数组,这种数组就是我们所说的关联数组,也称为散列/映射/字典JS对象都是关联数组

    9、对象查询使用方括号的方式时,方括号内字符串时动态的,可以在运行时更改。使用.和标识符的方式时,标识符是静态的,必须写死在程序里。

    10、不能通过同名自有属性覆盖只读继承属性

    11、delete只是断开属性和宿主对象的联系,而不会去操作属性中的属性。要确保销毁对象,要遍历属性中的属性,依次删除。delete运算符只能删除自有属性,不能删除继承属性。

    12、检测属性:可以通过in操作符hasOwnProperty()propertyIsEnumerable()方法来完成这个工作,甚至仅通过属性查询也可以。

    13、in操作符在对象的自有属性或继承属性中包含这个属性则返回true。对象的hasOwnProperty()方法用来检测给定的名字是否是对象的自有属性,对于继承属性它将返回false。结合使用可以检测某属性是否是继承属性。

    14、propertyIsEnumerable()是hasOwnProperty()的增强版,只有检测到是自有属性且这个属性可枚举时返回true。

    15、枚举属性for/in循环、ES5的Object.keys()函数(可枚举的自有属性)和Object.getOwnPropertyNames()(返回所有自有属性,不仅是可枚举的)。

    16、属性值可以用一个或两个方法替代,这两个方法就是getter和setter。由getter和setter定义的属性称作存取器属性

    17、通过调用Object.getOwnPropertyDescriptor()可以获得某个对象特定属性的属性描述符(属性描述符对象)。要想设置属性的特性,或者让新建属性具有某种特性,需要调用Object.defineProperty(),传入要修改的对象、要创建或修改的属性的名称以及属性描述符对象。

    18、要想检测一个对象是否是另一个对象的原型或处于原型链中,使用isPrototypeOf()方法。类似于instanceof运算符。

    19、要想获得对象的类,可以调用对象的toString()方法,然后提取字符串的第8个到倒数第二个位置之间的字符。Object.prototype.toString.call(o).slice(8,-1);

    20、ES5提供了内置函数JSON.stringify()和JSON.parse()用来序列化和还原JS对象。

    21、对象的可扩展性:Object.preventExtensions()不可添加,但已有的可删可改。Object.seal()不可添加删除,已有的可改。Object.freeze()不可添加删除更改(存取器属性不受影响)。

  • 相关阅读:
    C#操作XML
    Eval调用函数
    SQL 日期时间函数
    vue中created和mounted区别
    记录uniapp的APP端分享到微信好友,链接为小程序页面,分享失败的BUG
    【News】Windows CE会死吗?答,死不了,只是变身了。
    【原创】工作总结
    【原创】工作总结之二
    【资源收集】关于WINCE网卡开发的知识收集
    【news】wince 7 preview release。大家可以去看看
  • 原文地址:https://www.cnblogs.com/zczhangcui/p/6266406.html
Copyright © 2011-2022 走看看