ECMAScript中的Object类跟Java中的Object类相似,ECMAScript中的全部类都由这个类继承而来,Object类中的全部属性和方法都会出如今其他类中,所以理解Object类,就能够更好的理解其他类。

对象的创建

JavaScript的对象是属性的容器,当中每一个属性都拥有名字和值。

属性的名字能够是包含空字符串在内的随意字符串。属性值能够是除undefined值之外的不论什么值。

JavaScript里的对象是无类型的。它对新属性的名字和属性的值没有限制。

对象和适用于汇集和管理数据。对象能够包括其它对象,所以它们能够easy地表示成树状或图形结构。

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);

对象属性的訪问能够直接採用 对象名.属性名称 的方式。

对象字面量表示法

<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]);
  • 假设属性名中包括会导致语法错误的字符。或者属性名使用的是keyword或保留字,也能够用方括号表示法。

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类的属性

Object类具有下列属性:

  • constructor --- 对创建对象的函数的引用。对于Object类,该指针指向原始的object() 函数。
  • prototype --- 对该对象的对象原型的引用。

    对于全部的类,它默认返回Object对象的一个实例。

var obj = 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 true
alert(tomObj.hasOwnProperty("sex")); // output false alert(tomObj.toString()); // [object Object]
alert(tomObj.valueOf()); // [object Object]

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

最新文章

  1. 【IDEA 2016】intellij idea tomcat jsp 热部署
  2. linux @后面的主机名如何修改
  3. C# 分支语句
  4. Exact Change(背包HDU2753)
  5. CRM报表打印
  6. 转:OpenCms 9.0.1汉化
  7. Cacti添加Advance Ping监控模板
  8. 容易centos配置docker维修
  9. es6 Object.assign
  10. ubuntu上配置nginx实现反向代理
  11. netstat、ps、top 、kill 命令备忘
  12. vmware虚机 修改bios方法
  13. audio
  14. Manacher算法学习笔记 | LeetCode#5
  15. Coursera机器学习+deeplearning.ai+斯坦福CS231n
  16. vue bus 的使用
  17. 对软件工程Alpha迭代的反思与总结
  18. VS Code 折腾记 - (5) Angular 2+ &amp;&amp; Typescript 2 + 必备插件推荐
  19. vsftpd java程序无法创建和切换目录
  20. tomcat跟目录下work文件夹的作用

热门文章

  1. Java 自定义日志写入
  2. Reader开发(二)增加PDF阅读功能
  3. ASM - 条件判断
  4. guava之Joiner 和 Splitter(转)
  5. 使用boost io_service时,需要注意的东西
  6. Streaming编程实例(c,c++,python等)
  7. eclipse之The currrently displayed page contains invalid values错误
  8. HDU 4931 Happy Three Friends(水)
  9. SilkTest Q&amp;A 10
  10. Linux下套接字具体解释(三)----几种套接字I/O模型