第三章 对象(JavaScript:语言精粹)
// 3.1 code 1
var empty_object = {}; var stooge = {
"first-name": "Jerome",
"last-name": "Howard"
};
// 3.1 code 2
var filght = {
airline: "Oceanic",
number: 815,
departure: {
IATA: "SYD",
time: "2004-09-22 14:55",
city: "Sydney"
},
arrival: {
IATA: "LAX",
time: "2004-09-23 10:42",
city: "Los Angeles"
}
}
// 3.2 code 3
stooge["first-name"] // "Jerome"
flight.departure.IATA // "SYD"
// 3.2 code 4
stooge["middle-name"] // undefined
flight.status // undefined
stooge["FIRST-NAME"] // undefined
// 3.2 code 5
var middle = stooge["middle-name"] || "(none)";
var status = flight.status || "unknown";
// 3.2 code 6
flight.equipment // undefined
flight.equipment.model // throw "TypeError"
flight.equipment || flight.equipment.model // undefined
stooge['first-name'] = "Jerome";
stooge['middle-name'] = "Lester";
flight.equipment = {
model: "Boeing 777"
};
flight.status = "overdue";
// 3.4 code 8
var x = stooge;
x.nickname = "Curly";
stooge.nickname; // "Curly" var a = {}, b = {}, c = {}; // refer the diff Object
a = b = c = {}; // refer the same Object
// 3.5 code 9
if (typeof Object.beget !== 'function') {
Object.create = function (obj) {
var Func = function () {};
Func.prototype = obj;
return New Func();
};
}
var new_stooge = Object.create(stooge);
// 3.5 code 10
new_stooge['first-name'] = 'Harry';
new_stooge['middle-name'] = 'Moses';
new_stooge.nickname = 'Moses';
// 3.5 code 11
stooge.profession = 'actor';
new_stooge.profession // 'actor'
// 3.6 code 12
typeof flight.number // 'number'
typeof flight.status // 'string'
typeof flight.arrival // 'object'
typeof flight.manifest // 'undefined'
// 3.6 code 13
typeof flight.toString // 'function'
typeof flight.constructor // 'function'
// 3.6 code 14
flight.hasOwnProperty('number') // true
flight.hasOwnProperty('constructor') // false
// 3.7 code 15
var name;
for (name in new_stooge) {
if (typeof new_stooge[name] !== 'function' || !new_stooge.hasOwnProperty(name)) {
document.writeln(name + ': ' + new_stooge[name]);
}
}
// 3.7 code 16
var i;
var properties = [
'first-name',
'middle-name',
'last-name',
'profession'
];
for (i = 0; i < properties.length; i += 1) {
document.writeln(properties[i] + ': ' + new_stooge[properties[i]]);
}
// 3.8 code 17
new_stooge.nickname // 'Moe' object's value
delete new_stooge.nickname;
new_stooge.nickname // 'Curly' exposed prototype's value
// 3.9 code 18
var MYAPP = {};
// 3.9 code 19
MYAPP.stooge = {
"first-name": "Jerome",
"last-name": "Howard"
}; MYAPP.filght = {
airline: "Oceanic",
number: 815,
departure: {
IATA: "SYD",
time: "2004-09-22 14:55",
city: "Sydney"
},
arrival: {
IATA: "LAX",
time: "2004-09-23 10:42",
city: "Los Angeles"
}
}
第三章 对象(JavaScript:语言精粹)的更多相关文章
- 第四章 函数(JavaScript:语言精粹)
函数包含一组语句,用来指定对象的行为,其代码可以用来重复使用. 一般来说,编程就是将一组需求分解成一组函数和数据结构的技能. 概览:函数对象 | 函数字面量 | 调用 | 方法调用模式 | 函 ...
- 你想了解的《javaScript语言精粹》(三)
# javaScript语言精粹 # 第三章 对象 - javaScript 数据类型 1. 基础数据类型 Number String Boolean Undefined N ...
- 《javascript语言精粹》读书笔记 Item2 对象
第三章 对象 JavaScript的简单数据类型包括数字.字符串.布尔值(true和false).null值和undefined值.其他 数字.字符串和布尔值"貌似"对象,因为它们 ...
- javascript面向对象精要第三章对象整理精要
什么是对象的数据属性?什么是对象的访问器属性?[put]方法是默认创建数据属性的,访 问器属性不包含值而是定义了一个单属性被读取时调用的函数(getter)和当一个属性被写入时 调用的函数(sette ...
- JavaScript中对象与函数的某些事[JavaScript语言精粹-N1]
今天在读<JavaScript语言精粹>的时候,关于函数的一个部分,始终觉得有点难以理解,代码如下: 1: var obj = (function(){ 2: var value = 0; ...
- JavaScript语言精粹 笔记01 语法 对象
内容比较简单,只是从头梳理一下JS的知识 语法空白标识符数字字符串语句 对象对象字面量检索更新引用原型反射枚举删除减少全局变量污染 语法 1 空白 空白可能表现为格式化字符或注释的形式.空白通常没有 ...
- 《JavaScript语言精粹》之函数化
写在前面 看到好多书评和读书笔记都说<JavaScript语言精粹>字字珠玑,名不虚传..当然,要看得懂才行 其实个人认为函数化部分不是很好,举的例子不是十分恰当,之前看不懂是因为被成功误 ...
- 《JavaScript语言精粹》小记
一.前言 以下内容均摘自<JavaScript语言精粹>一书,本人在读这本书时,发现作者诠释JavaScript很犀利,特别是数组部分,固记录下来,想和大家分享下. 随笔主要包含两大部分: ...
- JavaScript语言精粹(读书笔记)
第一章 精华 1,JavaScript的函数(主要)基于词法作用域(lexical scoping)的顶级对象.强类型语言允许编译器在编译时检测错误,但弱类型很自由,无需建立复杂的类层次,不用做强制造 ...
随机推荐
- linux下mysql的忘记root密码的解决办法
因为放寒假家里没有宽带,便很少上网,前几天用手机进入自己的个人博客时竟然返回数据库不能连接的错误,吓我一跳,网站肯定被人黑了,但转头一想我的博客就几篇破文章,谁这么无聊要黑,我并没有立刻去网上找解决的 ...
- IO 磁盘总结
IO 磁盘 1.读取 首先引用一个using System.IO;引用空间其次 string ste= File.ReadAllText("E:\\bt.txt",Encoding ...
- dede新建模型中自定义联动类别调用及修改方法
搜索了好久,没找到一个好的方法,就凑活用这个方法吧.也许只有这个方法比较好 先在后台的“联动类别管理”里新增“类别组”,“类 别 名”填中文,“缓存组名”填英文字母. 在“分类名称”后面增加分类 然后 ...
- Centos7 创建个文件 thread 怪现象
我在~下创建个目录thread, 然后写了个程序, 再执行, 提示需要权限, 之后我重命名下文件的名字, 重新编译下, 就可以正常执行了.
- Java 正则表达式[转载]
PS:转载自CSDN博客看上去很美 众所周知,在程序开发中,难免会遇到需要匹配.查找.替换.判断字符串的情况发生,而这些情况有时又比较复杂,如果用纯编码方式解决,往往会浪费程序员的时间及精力.因此,学 ...
- IOS第18天(3,CALayer隐式动画)
******隐式动画(手指拖拽Layer) #import "HMViewController.h" @interface HMViewController () @propert ...
- Python的时间模块小结(转自:不懂真人)
import datetimeprint time.time() #时间戳 print time.localtime(time.time()) #时间元组 print time.strftime('% ...
- 使用本地phpmyadmin管理远程数据库
使用放下挺简单的,因为某些业务需求,phpmyadmin不让放在网站服务器上,所以放在本地可以方便管理远程数据库 点击下载会下载一个 config.inc.php 吧这个文件放在phpmyadmin ...
- AJAX原理及XMLHttpRequest对象分析
今天的主题是前端都了解的AJAX,但其中都有哪些知识点,还需要深入分析. 首先揭示AJAX的字面意思,Asynchronous Javascript And XML,通俗点就是“异步Javascrip ...
- Flink - metrics
Metrics是以MetricsGroup来组织的 MetricGroup MetricGroup 这就是个metric容器,里面可以放subGroup,或者各种metric 所以主要的接口就是注 ...