标签:object prototype function 实例 继承
ECMAScript中的Object类跟Java中的Object类相似,ECMAScript中的所有类都由这个类继承而来,Object类中的所有属性和方法都会出现在其它类中,所以理解Object类,就可以更好的理解其它类。
JavaScript的对象是属性的容器,其中每个属性都拥有名字和值。属性的名字可以是包括空字符串在内的任意字符串。属性值可以是除undefined值之外的任何值。
JavaScript里的对象是无类型的。它对新属性的名字和属性的值没有限制。对象和适用于汇集和管理数据。对象可以包含其他对象,所以它们可以容易地表示成树状或图形结构。
Object类型用于创建自定义对象(实例),创建方式有两种:
var cat = new Object(); cat.name = "tomcat"; cat.age = 3; alert("cat's name is " + cat.name + " and its age is " + cat.age);
对象属性的访问可以直接采用 对象名.属性名称 的方式。
<pre name="code" class="javascript">var dog = { "name":"hotdog", "age":3 }
里面的属性名和属性值采用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 tomcat alert(catObj["lovely brother"]); // output tom
如果属性的层次比较深的时候,使用方括号表示法表示麻烦;但是使用点表示法即可方便的一层层的访问到需要的属性。
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类具有下列属性:
var obj = new Object(); alert(obj.constructor); // output /* function Object() { [native code] } */
Object类具有如下方法:
var tomObj = { name : "tomcat", age : 4 } alert(tomObj.hasOwnProperty("name")); // output true alert(tomObj.hasOwnProperty("sex")); // output false alert(tomObj.toString()); // [object Object] alert(tomObj.valueOf()); // [object Object]
标签:object prototype function 实例 继承
原文地址:http://blog.csdn.net/magi1201/article/details/44310941