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之后再细述,这里不做介绍了。

JavaScript引用类型之Object类的更多相关文章

  1. JavaScript笔记——引用类型之Object类型和Function类型

    <JavaScript高级程序设计>中介绍的几种JavaScript的引用类型,本文只记了Object跟Function类型 Object类型 创建对象 var person = new ...

  2. JavaScript的进阶之路(三)引用类型之Object类型和Array类型

    引用类型 Object类型 function a(num){ if(num>3){ a(--num); } console.log(num); } a(5); //如何创建对象的实例 var o ...

  3. 浅析JavaScript引用类型之--Object、Array

    1.Object类型 对象是某个特定引用类型的实例,新对象有两种创建方式: i.使用new操作符调用构造函数来创建. var person = new Object(); person.name = ...

  4. JavaScript引用类型之Object类型

    在JavaScript中大多数的引用类型都是Object的实例,Object类型也是使用最多的类型! 创建Object类型实例的方式有两种,下面分别来分析一下: (1)第一种是使用new操作符后跟Ob ...

  5. Object类可以接受引用类型

    Object类是一切类的父类,所以Object类可以接受一切引用类型.连数组和接口对象也都可以接受. 1.接受数组 public class ObjectTest{ public static voi ...

  6. JavaScript学习总结(十一)——Object类详解

    一.Object类介绍 Object类是所有JavaScript类的基类(父类),提供了一种创建自定义对象的简单方式,不再需要程序员定义构造函数. 二.Object类主要属性 1.constructo ...

  7. JavaScript引用类型

    引用类型虽然看起来和类很相似,但是它们却是不同的概念,引用类型的值,也就是对象是引用类型的一个实例.在Js中引用类型主要有Object,Array,Date,正则,Function等. 数组Array ...

  8. Java基础12:深入理解Class类和Object类

    更多内容请关注微信公众号[Java技术江湖] 这是一位阿里 Java 工程师的技术小站,作者黄小斜,专注 Java 相关技术:SSM.SpringBoot.MySQL.分布式.中间件.集群.Linux ...

  9. JS的Object类的属性、方法及如何创建对象

    属性 constructor:对创建对象的函数的引用(指针).对于Object类,该指针指向原始的object()函数. prototype:对该对象的对象原型的引用.对于所有的类,它默认返回Obje ...

随机推荐

  1. YT工作日志-0911

    上午 在导师的帮助下,帮我从svn上下载了项目.但是因为项目太大(不算jar包有730M),很多模块不是我工作中涉及的,但是运行的时候会报错,所以导师还帮我找了很多错误.把那些不需要的东西注释了.就这 ...

  2. IT忍者神龟之Oracle DBA经常使用查询吐血列举

    –1. 查询系统全部对象 select owner, object_name, object_type, created, last_ddl_time, timestamp, status from ...

  3. Thinkpad W520 完美安装Ubuntu14.04LTS

    Thinkpad W520 完美安装Ubuntu14.04LTS Ubuntu已经升级到14.04LTS,这是个长期支持的版本号.自从上次安装12.04LTS之后一直没有升级. 于是从站点上下载Ubu ...

  4. Python学习笔记 — 函数

    函数是对程序逻辑进行结构化或过程化的一种编程方法.函数具有两个方面的意义:1)将代码分块,易于管理和阅读:2)最大化代码复用和最小化代码冗余,节省空间,有助于保持一致性. 1. 函数定义 Python ...

  5. 第12届北师大校赛热身赛第二场 B起床的烦恼

    题目链接:http://www.bnuoj.com/bnuoj/contest_show.php? cid=3570#problem/43572 题目大意: Nono从一開始数数,他每数一个数时会计算 ...

  6. python模块介绍- binascii 二进制和ASCII转换

    python模块介绍-binascii二进制和ASCII转换 目录 项目简介 简介: Uu编码 Binhex编码 Base64编码 QP码 CRC校验和 二进制转换 其他实例 项目简介 Python中 ...

  7. Spring3 MVC 拦截器拦截不到的问题

    拦截器: com.zk.interceptors.MyInterceptor 实现了 HandlerInterceptor接口,可以拦截@RequestMapping注解的类和方法 第一种方式 < ...

  8. [置顶] 关于本博客 http://www.imobilebbs.com

    由于时间上的关系,本博客不再和引路蜂移动软件博客同步更新,    请直接访问 http://www.imobilebbs.com 谢谢您的支持,再见   引路蜂博客

  9. 9、Cocos2dx 3.0游戏开发三查找值小工厂方法模式和对象

    重开发人员的劳动成果,转载的时候请务必注明出处:http://blog.csdn.net/haomengzhu/article/details/27704153 工厂方法模式 工厂方法是程序设计中一个 ...

  10. 这里的*号实际表示就是RAC中所有实例都使用

    您的位置: ITPUB个人空间 » cc59的个人空间 » 日志 发布新日志 我的日志我的足迹我的收藏 unix/linuxHA随笔backup&restoreperformance tuni ...