JavaScript引用类型之Object类 -电脑资料

电脑资料 时间:2019-01-01 我要投稿
【meiwen.anslib.com - 电脑资料】

    ECMAScript中的Object类跟Java中的Object类相似,ECMAScript中的所有类都由这个类继承而来,Object类中的所有属性和方法都会出现在其它类中,所以理解Object类,就可以更好的理解其它类,

JavaScript引用类型之Object类

对象的创建

    JavaScript的对象是属性的容器,其中每个属性都拥有名字和值。属性的名字可以是包括空字符串在内的任意字符串。属性值可以是除undefined值之外的任何值。

    JavaScript里的对象是无类型的。它对新属性的名字和属性的值没有限制。对象和适用于汇集和管理数据。对象可以包含其他对象,所以它们可以容易地表示成树状或图形结构。

    Object类型用于创建自定义对象(实例),创建方式有两种:

new后面加Object构造方法

var cat = new Object();cat.name = "tomcat";cat.age = 3;alert("cat's name is " + cat.name + " and its age is " + cat.age);

    对象属性的访问可以直接采用对象名.属性名称的方式。

对象字面量表示法

   

    里面的属性名和属性值采用key:value键值对的形式,其中key上面的引号通常可以省略掉。

var dog = {	name:"hotdog",	age:3}alert("dog's name is " + dog["name"] + " and its age is " + dog["age"]);

    对象属性的方式也可以采用对象名[属性名]的方式。

对象属性的访问

    对象属性的访问方式有两种:点表示法和方括号表示法。

点表示法对象名.属性名称方括号表示法对象名[属性名称]

方括号表示法的优点

    可以通过变量来访问属性

var  pName="name";alert(cat[pName]);

    如果属性名中包含会导致语法错误的字符,或者属性名使用的是关键字或保留字,也可以用方括号表示法。

cat["lovely brother"]="Tom";

    属性名中包含空格所以不能使用点表示法访问它.

var catObj = {	name : "tomcat",	"lovely brother" : "tom"}var pName = "name";alert(catObj[pName]); // output tomcatalert(catObj["lovely brother"]); // output tom

点表示法优点

    如果属性的层次比较深的时候,使用方括号表示法表示麻烦;但是使用点表示法即可方便的一层层的访问到需要的属性,

电脑资料

JavaScript引用类型之Object类》(http://meiwen.anslib.com)。

var animals = {	dog : {		name : "hotdog",		age : 4	},	cat : {		name : "tomcat",		age : 3	}}

    点表示法 访问 dog 的 name 属性

alert(animals.dog.name);

    方括号表示法 访问 dog 的 name 属性

alert(animals["dog"]["name"]);

    使用方括号表示法,如果属性比较多的时候,必须挨个的使用[ 和 ],且还要用引号引起属性名称,不如点表示法的直接。

    比较完两种方式:访问属性推荐使用点表示法,除非没办法用点表示法的时候选择用方括号访问

Object类的属性

    Object类具有下列属性:

constructor --- 对创建对象的函数的引用。对于Object类,该指针指向原始的object() 函数。prototype --- 对该对象的对象原型的引用。对于所有的类,它默认返回Object对象的一个实例。

var bj = new Object();alert(obj.constructor);// output /*function Object() {    [native code]}*/

Object类的方法

    Object类具有如下方法:

hasOwnProperty --- 判断对象是否有某个特定的属性。必须用字符串指定该属性(例如:obj.hasOwnProperty(“name”))。isPrototypeOf(object) --- 判断该对象是否为另一个对象的原型。propertyIsEnumerable(property) --- 判断给定的属性是否可以用for…in 语句进行枚举。toString() --- 返回该对象的原始字符串表示。valueOf() --- 返回最适合该对象的原始值。

var tomObj = {	name : "tomcat",	age : 4}alert(tomObj.hasOwnProperty("name")); // output truealert(tomObj.hasOwnProperty("sex")); // output falsealert(tomObj.toString()); // [object Object]alert(tomObj.valueOf());  // [object Object]

hasOwnProperty()、isPrototypeOf(object)、propertyIsEnumerable(property) 这三个方法在讲了原型prototype之后再细述,这里不做介绍了。

最新文章