JavaScript引用类型之Object类

ECMAScript中的Object类跟Java中的Object类相似,ECMAScript中的所有类都由这个类继承而来,Object类中的所有属性和方法都会出现在其它类中,所以理解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);

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

对象字面量表示法

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

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

时间: 2024-08-26 01:48:22

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

Javascript中的Object类

Object类是Javascript中最基本的类,用来创建普通对象,通常用这些对象存储数据. 1.Object对象 1.1.创建Object对象 创建Object对象有两种方式 第一种创建方式:new Object() var obj = new Object(); 第二种创建方式:{} var obj = {}; var obj2 = {"name":"tom","age":24}; 1.2.添加属性 obj.firstname = "

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

引用类型 Object类型 function a(num){ if(num>3){ a(--num); } console.log(num); } a(5); //如何创建对象的实例 var obj1= new Object(); console.log(obj1); obj1.name="吴琼"; obj1.age=28; console.log(obj1.name+" "+obj1.age); //对象字面量语法 ,有点封装的感觉 var obj2 = {

深入了解JavaScript引用类型之--Object、Array

1.Object类型 对象是某个特定引用类型的实例,新对象有两种创建方式: i.使用new操作符调用构造函数来创建. 1 var person = new Object(); 2 person.name = "zhangsan"; 3 person.age = 20; ii.使用对象字面量表示法来创建对象,可以简化创建包含大量属性的对象的创建过程. 1 var person = { 2 name = "zhangsan", 3 age = 20 4 }; var p

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

一.Object类介绍 Object类是所有JavaScript类的基类(父类),提供了一种创建自定义对象的简单方式,不再需要程序员定义构造函数. 二.Object类主要属性 1.constructor:对象的构造函数. 2.prototype:获得类的prototype对象,static性质. 三.Object类主要方法 1.hasOwnProperty(propertyName) 判断对象是否有某个特定的属性.必须用字符串指定该属性,例如,obj.hasOwnProperty("name&q

【javascript 引用类型(一)】

javascript 的引用类型大致分为:Object 类型.Array 类型.Date 类型.RegExp 类型.Function 类型.基本包装类型和单体内置对象.这里我们着重介绍 Object 类型.Array 类型和 RegExp 类型. [Object 类型] 创建 Object 实例的方式有两种,一种是使用 new 操作符后跟 Object 构造函数,代码如下: var person = new Object(); person.name = 'Nicholas'; person.a

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

属性 constructor:对创建对象的函数的引用(指针).对于Object类,该指针指向原始的object()函数. prototype:对该对象的对象原型的引用.对于所有的类,它默认返回Object对象的一个实例. 方法 hasOwnProperty(property):判断对象是否有某个特定的属性.必须用字符串指定该属性(例如,o.hasOwnProperty(”name”)). isPrototypeOf(object):判断该对象是否为另一个对象的原型. propertyIsEnum

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

Java基础12:深入理解Class类和Object类 Java中Class类及用法 Java程序在运行时,Java运行时系统一直对所有的对象进行所谓的运行时类型标识,即所谓的RTTI. 这项信息纪录了每个对象所属的类.虚拟机通常使用运行时类型信息选准正确方法去执行,用来保存这些类型信息的类是Class类.Class类封装一个对象和接口运行时的状态,当装载类时,Class类型的对象自动创建. 说白了就是: Class类也是类的一种,只是名字和class关键字高度相似.Java是大小写敏感的语言.

夯实Java基础系列9:深入理解Class类和Object类

目录 Java中Class类及用法 Class类原理 如何获得一个Class类对象 使用Class类的对象来生成目标类的实例 Object类 类构造器public Object(); registerNatives()方法; Clone()方法实现浅拷贝 getClass()方法 equals()方法 hashCode()方法; toString()方法 wait() notify() notifAll() finalize()方法 CLass类和Object类的关系 参考文章 微信公众号 Ja

Object类

Object类是所有类,数组,枚举类的父类,也就是说,java允许把任何类型的对象赋值给Object类型的 变量,当定义一个类是没有石油extends关键字为他显示指定父类时,则该类默认继承Object父类 因为所有的类都是Object类的子类,所有任何java对象都可以调用Object类的方法,Object类提供了如下的 几个常用的方法 1.boolean equals(Object obj): 判断指定对象与该对象是否相等,此处相等的标准是,两个对象是同一个对象 2.protected vo