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()不可添加删除更改(存取器属性不受影响)。
js-权威指南学习笔记5的更多相关文章
- js权威指南---学习笔记02
1.JS只有函数作用域,没有块级作用域这个概念: 它有一个特性——声明提前:在同一个函数中不同位置声明的变量,都被提前在函数开始的时候,执行声明操作:在原先位置执行赋值操作: 2.声明的全局变量,相当 ...
- js权威指南学习笔记(一)类型、值和变量
1.数据类型:原始类型(primitive type) 和对象类型(object type) 原始类型包括数字.字符串和布尔值: 除数字.字符串.布尔值.null(空).undefined(未定义), ...
- js权威指南---学习笔记01
1.当函数赋值给对象的属性时,就变为了方法:2.被零整除不报错,只会返回无穷大(Infinity)或者负无穷大.例外:零除以零等于非数字(NaN).3.NaN与任何值都不相等! 4.Javascrip ...
- js权威指南学习笔记(四)对象
1.创建对象 (1).通过对象直接量的方式创建 说明:对象直接量是由若干名/值对组成的映射表,名/值对中间用冒号分隔,名/值对之间用逗号分隔,整个映射表用花括号括起来. 如: 5 5 ...
- js权威指南学习笔记(三)语句
1.声明语句 如果用var声明的变量没有初始化,那么这个变量的值会被初始化为undefined. 函数声明语句的语法如下: 4 4 1 console.log(func ...
- js权威指南学习笔记(二)表达式与运算符
1.数组初始化表达式 数组直接量中的列表逗号之间的元素可以省略,这时省略的空位会填充undefined.如: 2 2 1 var arr = [1,,,,,6]; 2 ...
- JavaScript 权威指南-学习笔记(一)
本文所有教程及源码.软件仅为技术研究.不涉及计算机信息系统功能的删除.修改.增加.干扰,更不会影响计算机信息系统的正常运行.不得将代码用于非法用途,如侵立删! ## JavaScript 权威指南-学 ...
- 《JS权威指南学习总结》
JS权威指南学习总结:http://www.cnblogs.com/ahthw/category/652668.html
- 《JS权威指南学习总结--开始简介》
本书共分成了四大部分: 1.JS语言核心 2.客户端JS 3.JS核心参考 4.客户端JS核心参考 其中 <JS权威指南学习总结--1.1语法核心> 是:第一部分JS语言核心 各章节重点 ...
- HTTP权威指南-学习笔记
目录 HTTP权威指南-学习笔记 HTTP: Web的基础 URL与资源 HTTP报文 连接管理 HTTP结构 Web服务器 代理 缓存 集成点: 网关,隧道及中继 Web机器人 识别,认证与安全 客 ...
随机推荐
- echart 遇到的点
1,图表随着外部container变化而变化: window.onresize = myChart.resize (拿着resize在api文档中搜就看到了)
- 在Load average 高的情况下如何鉴别系统瓶颈
在Load average 高的情况下如何鉴别系统瓶颈.是CPU不足,还是io不够快造成? 或是内存不足? 一:查看系统负载vmstat procs -----------memory-------- ...
- java 0 开始
利用了61天的时间学习了 se 不过忘得也很多 .在这里开一个帖子 打算利用几天的时间进行复习,把凡是能用到的都放在这边. 不带图形界面的第一个项目已经弄完 (看视频加看书..而且自己往上面加东 ...
- How to manage IntelliJ IDEA projects under Version Control Systems
如何在版本控制系统中管理 IntelliJ IDEA 项目文件 IntelliJ IDEA 设置详细,功能强大.在实际工作中,我们有时会遇到跟同事共享项目文件的情况. 那么,有哪些项目文件应该加入到版 ...
- DOM时钟
使用JS使时钟运动 DOM运动,主要操作css3中transform:rotate(): 计时器setInterval(),setTimeout(),如何防止时钟偷停; 时钟的时针.分针.秒针的运动的 ...
- java.io.IOException: Could not find status of job:job_1534233312603_0002
hive执行插入数据操作 报错: 在hive console里面输入: set hive.jobname.length=20; 再次执行好了:
- python上安装requests
首先需要配置好python的环境变量. 测试是否成功配置,进入命令行,输入python. 如下图为配置成功. 去第三方库的网站下载安装包,解压在python的安装目录 ,下载地址:https://py ...
- C/C++ -- Gui编程 -- Qt库的使用 -- Qt编码问题
1.直接使用QObject::trUtf8("中文字符串") 2.头文件<QTextCodec>QTextCodec::setCodecForTr(QTextCodec ...
- java8 学习之路之lambda
前言 目前我们知道java的版本已经发布到12了,之前的项目用的是JDK1.7,听说JDK1.8的改动相对来说大一些,因此抽空学学JDK1.8的一些新特性.本人也是通过阅读Java8实战这本书做一些小 ...
- Global Embedding 理解
1.Attention-based seq2seq e(t,i):求上一时刻的输出和这一时刻编码器的输出的相似度 a(t,i):求这个词在整个文本中占多大的比重,每个时刻都存在着一个值,这个只是求一个 ...