JavaScript语言精粹读书笔记- JavaScript对象
JavaScript 对象
除了数字、字符串、布尔值、null、undefined(都不可变)这5种简单类型,其他都是对象。
JavaScript中的对象是可变的键控集合(keyed collections)。
对象是属性的容器,其中每个属性都拥有名字和值。
JavaScript中的对象是无类别的(class-free)的。它对新属性的名字和值没有约束。
JavaScript包括一个原型链特性,允许对象继承另一对象的属性。
对象的检索:
stooge[“first-name”]或者stooge.first-name(推荐,更紧凑可读性更好)
||运算符可以用来填充默认值:var middle = stooge[“middle-name”] || “none”
引用:
对象通过引用来传递,他们永远不会被拷贝。
原型:
每个对象都连接到一个原型对象,并且它可以从中继承属性。所有通过对象字面量创建的对象都连接到Object.prototype这个JavaScript中的标准对象。
原型连接在更新时不起作用。我们对某个对象做出改变时,不会触及到该对象的原型。原型连接只有在检索值时才会被用到。
反射:
检查对象并确定对象有什么属性是很容易的事情,只要试着去检索该属性并验证取得的值。
type of flight.number
flight.hasOwnProperty(‘number’)
枚举:
for in语句可用遍历一个对象中的所有属性名。该枚举过程将会列出所有的属性(包括函数和你可能不关系的原型中的属性,可以使用反射的任一种方式来排除不想要的值)
删除:
delete运算符可以用来删除对象的属性。它将会移除对象中确定包含的属性。它不会触及原型链中的任何对象。
delete stooge.nickname
减少全局变量污染:
JavaScript可以很随意地定义那些可保存所有引用资源的全局变量。最小化使用全局变量的一个方法是在你的应用中只创建一个全局变量:
var myapp = {};
该变量此时变成了你的应用的容器:
myapp.stooge = {“first-name”:”Joe”,”last-name”:”Howard”};
只要把多个全局变量都整理在一个命名空间下,你将显著降低与其他应用程序、组件和类库之间产生糟糕的互相影响的可能性。你的程序也会变得更容易阅读,因为很明显myapp.stooge指向的是顶层结构。
JavaScript语言精粹读书笔记- JavaScript对象的更多相关文章
- JavaScript语言精粹读书笔记 - JavaScript函数
JavaScript是披着C族语言外衣的LISP,除了词法上与C族语言相似以外,其他几乎没有相似之处. JavaScript 函数: 函数包含一组语句,他们是JavaScript的基础模块单元,用于代 ...
- <JavaScript语言精粹>-读书笔记(一)
用object.hasOwnProperty(variable)来确定这个属性名是否为该对象成员,还是来自于原型链. for(my in obj){ if(obj.hasOwnProperty(my) ...
- JavaScript语言精粹-读书笔记
前言:很久之前读过一遍该书,近日得闲,重拾该书,详细研究一方,欢迎讨论指正. 目录: 1.精华 2.语法 3.对象 4.函数 5.继承 6.数组 7.正则表达式 8.方法 9.代码风格 10.优美的特 ...
- JavaScript 语言精粹读书笔记
最近在看 赵泽欣 / 鄢学鹍 翻译的 蝴蝶书, 把一些读后感言记录在这里. 主要是把作者的建议跟 ES5/ES5.1/ES6 新添加的功能进行了对比 涉及到的一些定义 IIFE: Immediatel ...
- <JavaScript语言精粹>--<读书笔记三>之replace()与正则
今天有人问我repalce(),他那个题目很有意思.我也不会做,于是我就去查,结果发现就是最基础的知识的延伸. 所以啊最基础的知识才是很重要的,千万不能忽略,抓起JS就写代码完全不知到所以然,只知道写 ...
- 【Javascript语言精粹】笔记摘要
现在大部分编译语言中都流行要求强类型.其原理在于强类型允许编译器在编译时检测错误.我们能越早检测和修复错误,付出的代价越小.Javascript是一门弱类型的语言,所以Javascript编译器不能检 ...
- JavaScript语言精粹学习笔记
0.JavaScript的简单数据类型包括数字.字符创.布尔值(true/false).null和undefined值,其它值都是对象. 1.JavaScript只有一个数字类型,它在内部被表示为64 ...
- 学习javascript语言精粹的笔记
1.枚举: 用for in 语句来遍历一个对象中所有的属性名,该枚举过程将会列出所有的属性也包括涵数和方法,如果我们想过滤掉那些不想要的值,最为常用的过滤器为hasOwnProperty方法,以及使用 ...
- 《JavaScript语言精粹》笔记
0.JavaScript的简单数据类型包括数字.字符创.布尔值(true/false).null和undefined值,其它值都是对象. 1.JavaScript只有一个数字类型,它在内部被表示为64 ...
随机推荐
- C#基础视频教程1 背景知识和安装配置
安装过程比较简单,用虚拟光驱工具加载ISO文件,然后打开EXE安装即可,主要使用VS2013(VS2015也出来了,但是用的还不算多) 建议设置为深色(比较容易看清) 建议显示行号,不要自 ...
- tableview的两个重用cell方法
今天在学习IAP的时候无意间看到原来 tableView: cellForRowAtIndexPath:方法中有两个获得重用cell的方法,一直以来都是用 UITableViewCell *cel ...
- hdu 2896 AC自动机模版题
题意:输出出现模式串的id,还是用end记录id就可以了. 本题有个关键点:“以上字符串中字符都是ASCII码可见字符(不包括回车).” -----也就说AC自动机的Trie树需要128个单词分支. ...
- B/S学习总结
经过5个月的学习,B/S学习的项目完毕了. 尽管项目完毕了,可是感觉自己还是差非常远.会的太少了.须要在项目中不断实战吧.以下分别对每一个项目进行总结. 牛腩新闻公布系统 简单介绍: 跟着视频里面的牛 ...
- profiler跟踪事件模板文件
查找执行情况最差的查询. 例如,可以创建一个捕获与 TSQL 和 Stored Procedure 事件类(RPC:Completed 和SQL:BatchCompleted)相关的事件的跟踪.在此跟 ...
- js 获取iframe页面元素
js 获取iframe页面元素 CreationTime--2018年8月16日18点00分 Author:Marydon <!-- chart图表 --> <iframe id ...
- 〖Linux〗关于Linux软件包安装位置、版本查询
1. 查询版本 aptitude show [软件] 2. 查询路径 dpkg -L [软件] whereis [软件] which [软件]
- iOS 全屏侧滑/UIScrollView/UISlider间滑动冲突
代码地址如下:http://www.demodashi.com/demo/13848.html 效果预览 一.前期准备 有一个支持全屏侧滑返回的视图控制器ViewController,ViewCont ...
- 不经意的小错误——onclick和click的区别
可能注意不到的错误,编写jquery时发现没有自己想要的效果,结果通过代码比对软件才发现原来将click写成了onclick,虽然看着差不多,但意义却不相同,简单区别如下: $().click() 是 ...
- Linux命令-目录处理命令:cd
cd /tmp/shijiazhuang 切换到tmp目录下面的shijiazhuang目录 cd .. 切换到上一级目录