JavaScript中的Object对象

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

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

语法

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

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

newObject([value])

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

Object([value])

参数

参数描述

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

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

如果value为基元数据类型Boolean、Number、String,则返回对应类型的对象,例如:Boolean对象、Number对象、String对象。

如果value本身为对象,则不对其作任何更改,返回其本身。

如果省略了value参数,或value为null、undefined,则返回自身无任何属性的Object对象。

返回值

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

示例&说明

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

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

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

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

varstr="CodePlayer";

document.writeln(typeofstr);// string

varobj=newObject(str);// 包装为String对象,实际上相当于 var obj = new String(str);

document.writeln(typeofobj);// object

document.writeln(obj.constructor===String);// true

document.writeln(obj instanceofString);// true

document.writeln(obj instanceofObject);// true

varstrObj=newString("CodePlayer");

document.writeln(typeofstrObj);// object

varobj2=newObject(strObj);// strObj本身就是对象,直接返回该对象

document.writeln(obj2===strObj);// true

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

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

// 基元数据类型 => 对应类型的对象

varstrObj=newObject("CodePlayer");// 返回一个String对象,相当于new String("CodePlayer");

varnumObj=newObject(18);// 返回一个Number对象,相当于new Number(18);

varboolObj=newObject(true);// 返回一个Boolean对象,相当于new Boolean(true);

document.writeln(strObj instanceofString);// true

document.writeln(numObj instanceofNumber);// true

document.writeln(boolObj instanceofBoolean);// true

// 对象 => 对象本身

vararr=[2,3,5];

varregex=/^\d$/;

functiontest(){

alert("Hello World!");

}

vararrObj=newObject(arr);

varregObj=newObject(regex);

varfunObj=newObject(test);

document.writeln(arrObj===arr);// true

document.writeln(regObj===regex);// true

// 虽然typeof funObj返回的是"function",但它本身就是一个Function对象

document.writeln(funObj===test);// true

// null => 空对象

varobj=newObject(null);

document.writeln(obj instanceofObject);// true

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

varobj=newObject();

obj.name="CodePlayer";

obj.age=18;

obj.sayHi=function(){

alert("Hello World!");

};

document.writeln(obj.age);// 18

// 移除age属性

deleteobj.age;

document.writeln(obj.age);// undefined

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

varobj=newObject();

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以字面值形式声明

varo={

// 所有的属性名称都可以加上引号

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"]);// 包含特殊字符

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,271评论 5 466
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,725评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,252评论 0 328
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,634评论 1 270
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,549评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 47,985评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,471评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,128评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,257评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,233评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,235评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,940评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,528评论 3 302
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,623评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,858评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,245评论 2 344
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,790评论 2 339

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,559评论 18 139
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 10,830评论 6 13
  • 不走心的努力,仅仅只是作秀。 1:有个学摄影的朋友,辞职了,朋友那天跟我电话,略带沙哑的声音寻求我帮助的时候。我已...
    书上熊阅读 168评论 0 0
  • 1.没有好好考证的原因是,我不知道以后会从事什么工作,但是当时学习这门课程难住了我,让我觉得我不喜欢这个行业,所以...
    洛尓阅读 127评论 0 0
  • 壹 若干年后。 “听说楚兄闭门苦读三月,想必今年定能夺得头筹啊。” 楚既明闻言轻笑:“柳兄过奖了,试已考完,多说无...
    绢踏阅读 170评论 0 2