JavaScript权威指南(第6版)(中文版)--系列4(对象)
Posted wcq12
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript权威指南(第6版)(中文版)--系列4(对象)相关的知识,希望对你有一定的参考价值。
对象是javascript基本数据类型。
6.1创建对象。
可以通过对象直接量、关键字new和Object.create()函数来创建对象。
6.1.1 对象直接量。
列子:
var empty ={}; //没有任何属性的对象。
var point = {x:0,y:0}; //两个属性。
var point2 = {x:point.x,y:point.y+1} //更复杂的值。
var book = {
"main title": "JavaScript", // 属性名字里有空格,必须用字符串表示。
‘sub-title‘:"The Definitive Guide" // 属性名字里有连字符,必须用字符串表示
"for" : "all audiences", // "for是保留字,因此必须用引号"
author:{ // 这个属性的值是一个对象。
firstname: ‘David‘ //注意,这里的属性名都没有引号
}
};
6.1.2 通过new创建对象。
new 运算符创建并初始化一个新对象。关键字new后跟随一个函数调用,这里的函数称作构造函数。
var o = new Object(); //创建一个空数组,和【】一样
var d = new Date(); //创建一个表示当前时间的date对象
6.1.3 原型
每一个JavaScript对象(null除外)都和另一个对象想关联,"另一个"对象就是我们熟知的原型,每一个对象都是从原型继承属性。
object.prototype
通过关键字new和构造函数调用创建的对象的原型,就是构造函数的prototype的属性值。
6.1.4 Object.create();
它创建一个新对象,其中第一个参数是这个对象的原型第二个可选参数,用以对象的属性进行进一步描述。
var o1 = Object.create({x:1,y:2}); //o1继承了属性x和y
6.2 属性的查询和设置。
6.2.2 继承。
JavaScript对象具有"自有属性",也有一些属性是从原型对象继承而来的。
var o ={} //o 从Object.prototype 继承对象的方法。
o.x =1; // 给o定义一个属性x
var p = inherit(o); // p继承o和Object.prototype
p.y=2; // 给p定义一个属性y
var q = inherit(p) // q继承p、o和object.prototype
q.z=3; // 给q定义一个属性y
var s = q.toString(); toString继承自Object.prototype
q.x+q.y // 3 x和y分别继承自o和p
6.2.3 属性访问错误。
6.3 删除属性。
delete 运算符可以删除对象的属性。
6.4 检测属性。
in, hasOwnPreperty()和propertyIsEnumerable()
var o = {x:1}
"x" in o; // true: "x"是o的属性。
"y" in o; // false "y"不是o的属性。
"toString" in o; // true: o 继承toString属性。
对象的hasOwnProperty()方法用来检测给定的名字是否对象的自有属性。对于继承属性它将返回false:
var o = {x:1}
o.hasOwnProperty("x") // true: o 有一个自有属性x
o.hasOwnProperty("y") // false:o中不存在属性y
o.hasOwnProperty("toString") // false toString是继承属性。
6.5 枚举属性。
6.6 属性getter和setter
6.8 对象的三个属性。
6.8.1 原型属性。
要想检测一个对象是否是另一个对象的原型,请使用isPrototypeOf()方法。
6.8.2 类属性。
6.9 序列化对象。
对象序列化是指对象的状态转换为字符串,也可以将字符串还原为对象。
内置函数JSON.stringify()和JSON.parse()用来序列化和还原JavaScript对象。
o = {x:1,y:{z:[false,null,""]}}; // 定义一个测试对象。
s= JSON.stringify(o); // s是‘{"x":1,"y":{"z":{false,null,""}}}‘;
p = JSON.parse(s); // p是o的深拷贝
6.10 对象方法
6.10.1 toString()方法
toString()方法没有参数,它将返回一个表示调用这个方法的对象值的字符串,在需要将对象转换为字符串的时候。
var s ={x:1,y:1}.toString();
6.10.2 toLocaleString() 方法
返回一个表示这个对象的本地化字符串。
6.10.3 toJSON() 方法。
6.10.4 valueOf() 方法。
以上是关于JavaScript权威指南(第6版)(中文版)--系列4(对象)的主要内容,如果未能解决你的问题,请参考以下文章
JavaScript权威指南(第6版)(中文版)--系列4(对象)
JavaScript权威指南(第6版)(中文版)--系列3(语句)