当前位置: 首页 > 中文手册 > JavaScript Object 对象详解

JavaScript Object 对象详解

JavaScript中的Object对象,是JS中所有对象的基类,也就是说JS中的所有对象都是由Object对象衍生的。Object对象主要用于将任意数据封装成对象形式。

所有主流浏览器均支持Object对象。更多细节信息请参考JavaScript Object对象的属性和方法

语法

Object对象(或称之为Object()函数),其语法有以下两种:

用法一:充当Object对象的构造函数使用,用于结合new关键字构造一个新的Object对象。Object()会根据传入参数的类型返回一个对应类型的对象。

new Object( [ value ] )

用法二:当作普通函数使用,其行为与用法一(使用new关键字)完全一致,相当于用法一省略了new关键字。

Object( [ value ] )

参数

参数描述
value可选/任意类型需要包装为对象的值。

Object()将会根据参数value的数据类型,返回对应类型的对象:

  • 如果value为基元数据类型BooleanNumberString,则返回对应类型的对象,例如:Boolean对象、Number对象、String对象。
  • 如果value本身为对象,则不对其作任何更改,返回其本身。
  • 如果省略了value参数,或valuenullundefined,则返回自身无任何属性的Object对象。

返回值

Object()的返回值为Object类型。返回一个与给定值对应类型的对象。该对象包装了给定的参数。

示例&说明

Object()返回一个与指定参数对应类型的对象。

1、如果参数为基元数据,则返回对应类型的对象。例如:参数为原始字符串值(typeof该参数返回"string"),则返回对应的String对象。

2、如果参数自身就是对象(typeof该参数返回"object"或"function"),则不对其作任何更改,返回其本身。

3、如果未指定参数,或参数为nullundefined,则返回一个空对象。

var str = "CodePlayer";
document.writeln( typeof str ); // string
var obj = new Object( str ); // 包装为String对象,实际上相当于 var obj = new String(str);
document.writeln( typeof obj); // object
document.writeln( obj.constructor === String ); // true
document.writeln( obj instanceof String ); // true
document.writeln( obj instanceof Object ); // true


var strObj = new String( "CodePlayer" );
document.writeln( typeof strObj ); // object
var obj2 = new Object( strObj ); // strObj本身就是对象,直接返回该对象
document.writeln( obj2 === strObj ); // true

运行代码(其他代码请自行复制到演示页面运行)

请再参考下面一段示例代码:

// 基元数据类型 => 对应类型的对象
var strObj = new Object( "CodePlayer" ); // 返回一个String对象,相当于new String("CodePlayer");
var numObj = new Object( 18 ); // 返回一个Number对象,相当于new Number(18);
var boolObj = new Object( true ); // 返回一个Boolean对象,相当于new Boolean(true);
document.writeln( strObj instanceof String ); // true
document.writeln( numObj instanceof Number ); // true
document.writeln( boolObj instanceof Boolean ); // true

// 对象 => 对象本身
var arr = [ 2, 3, 5];
var regex = /^\d$/;
function test(){
	alert("Hello World!");
}
var arrObj = new Object( arr );
var regObj = new Object( regex );
var funObj = new Object( test );
document.writeln( arrObj === arr ); // true
document.writeln( regObj === regex ); // true
// 虽然typeof funObj返回的是"function",但它本身就是一个Function对象
document.writeln( funObj === test ); // true

// null => 空对象
var obj = new Object( null );
document.writeln( obj instanceof Object ); // true

在JS中,你还可以为创建的对象任意添加、修改或移除某些属性和方法(有些内置属性和方法可能无法被修改或移除)。

var obj = new Object();
obj.name = "CodePlayer";
obj.age = 18;
obj.sayHi = function( ){
	alert("Hello World!");	
};
document.writeln( obj.age ); // 18

// 移除age属性
delete obj.age;
document.writeln( obj.age ); // undefined

在JS中对象的属性可以通过两种方式访问:object.propertyobject["property"]

var obj = new Object();
obj.name = "CodePlayer";
obj.age = 18;
obj.sayHi = function( ){
	alert("Hello World!");	
};

// 包含特殊字符的属性只能以此方式访问
obj["foo-bar"] = "包含特殊字符";

document.writeln( obj.age ); // 18
document.writeln( obj['age'] ); // 18
document.writeln( obj["foo-bar"] ); // 包含特殊字符

JS还支持以字面值形式创建一个自定义对象:{ property1:value1, property2:value2, propertyN:valueN }

// 将上述自定义对象obj以字面值形式声明
var o = {
	// 所有的属性名称都可以加上引号
	name: "CodePlayer",
	age: 18,
	sayHi: function(){
		alert("Hello World!");
	},
	"foo-bar": "包含特殊字符"	
};

document.writeln( o.age ); // 18
document.writeln( o['age'] ); // 18
document.writeln( o["foo-bar"] ); // 包含特殊字符
42 10
我们认为: 用户的主要目的,是为了获取有用的信息,而不是来点击广告的。因此本站将竭力做好内容,并将广告和内容进行分离,确保所有广告不会影响到用户的正常阅读体验。用户仅凭个人意愿和兴趣爱好点击广告。
我们坚信:只有给用户带来价值,用户才会给我们以回报。
CodePlayer技术交流群1CodePlayer技术交流群1

帮朋友打一个硬广告:

P2P网贷系统(Java版本) 新年低价大促销,多年P2P技术积累,系统功能完善(可按需定制,可支持第三方存管、银行存管),架构稳定灵活、性能优异、二次开发快速简单。 另可提供二次开发、安装部署、售后维护、安全培训等一条龙服务。

外行看热闹,内行看门道。可以自信地认为,在系统设计上,比市面上的晓风、迪蒙、方维、绿麻雀、国融信、金和盛等P2P系统要好。
深圳地区支持自带技术人员现场考察源代码、了解主要技术架构,货比三家,再决定是否购买。

也可推荐他人购买,一旦完全成交,推荐人可获得实际售价 10% 的返现。
有意向者,详情请 点击这里 联系,工作时间立即回复。