js创建对象的两种方式,js 创建对象

js创建对象的两种方式,js 创建对象,js创建对象的方法汇总

本文主要介绍js创建对象的方法。js有三种方法来创建对象。下面给大家总结一下。感兴趣的朋友可以参考一下。

Js有三种创建对象的方法。这里有一个总结。

1.对象直接量

所谓的对象直接量,可以看作是一个映射表,这种方法也是最直接的一种。个人对比建议,

//创建一个简单对象

var obj 1={ };//空对象

var obj2={

名称:' ys ',

年龄:12岁

};

//创建复杂对象

var obj3={

名称:' ys ',

年龄:12岁,

喜欢:{

喝:“水”,

吃:“食物”

}

};

console . log(obj 1的类型);//对象

console . log(obj 2的类型);//对象

console . log(obj 3类型);//对象

有些人可能会发现,这里的键名没有引号" "。太小心了。其实这个引号(单引号,同js)可以加也可以不加,但我个人建议加。为什么?因为添加之后,键名可以是任意的.当然,不乱定义名字的话,还是第一种好,因人而异。

var obj4={

我的名字':' ys ',//键名中间有一个空格

' My-age': 12,//键名中间有一个连字符

' While': 111 //键名是一个关键字

}

console.log(obj4['我的名字']);//ys

console . log(obj 4[' my-age ']);//12

console . log(obj 4 . while);//111

console . log(obj 3类型);//对象

从上面的例子中,你可以看出“.”的区别和“[]”访问属性。

对象,键-值对的值支持表达式,如下所示

var obj3={

名称:' ys ',

年龄:obj2.age,//引用obj2.age。

喜欢:{

喝:“水”,

吃:“食物”

}

};

console . log(obj 3 . age);//100

2.new创建对象

1).系统内置对象

var obj 1=new Object();

var obj 2=new Array();

var obj 3=new Date();

var obj 4=new RegExp(' ys ');

console . log(obj 1的类型);//对象

console . log(obj 2的类型);//对象

console . log(obj 3类型);//对象

console . log(obj 4类型);//对象

2).自定义对象

职能人员(姓名、年龄){

this.name=name

this.age=年龄;

}

var obj1=新人(' ys ',12);

console . log(object . prototype . tostring . call(obj 1));//对象

console.log(对象的人员实例);//真

console . log(obj 1的类型);//对象

console . log(obj 1 . age);//12

3.Object.create()创建

这个方法有两个参数,所以我只解释第一个参数,第二个参数不常用(对象属性的进一步描述)。

第一个参数:传入要继承的原型对象。

这句话怎么理解?

var obj1=Object.create({

名称:' ys ',

年龄:12岁

});

console . log(obj 1);//{}

console . log(obj 1 . age);//12

Obj1是{},为什么可以访问属性值?让我们来理解第一个参数“传入要继承的原型对象”的含义

console.log(obj1。_ _ proto _ _);//Object {name: 'ys ',年龄:12}

对象本身是空的,但是原型链上的数据不是空的,obj1.age存在,所以可以访问。

1).当第一个参数为null时

var obj 2=object . create(null);//不要继承对象应该有的属性和方法。

console . log(obj 2 ' ABC ');//报告错误并失去功能

你为什么报告错误?正常参数下生成的图形如下:

从图中可以看出,要继承的原型对象(即参数)继承了Object的原型对象。关键原因是object的prototype对象包含了js对象的一些基本方法(indexOf()、toString()、' ' function …)。此时,如果参数为null,那么这个继承链就断了。

这个时候,你应该明白一句话。JavaScript中的所有对象都继承自Object,认为Object位于继承链的顶端。

2).创建空对象

var obj 3=object . create(object . prototype);

console . log(obj 3);//{},(空对象,与前两个方法相同{},新对象)

console.log(obj3。_ _ proto _ _);//如下图所示,只包含基本对象的方法。

代码图:

创建的对象只包含该对象的基本方法。

3).最后大家看下面的代码,希望能更深刻的理解Object.create()方法,大家可以参考这篇文章: 《一种新的javascript对象创建方式Object.create()》

var obj1={

名称:' ys ',

年龄:12岁

};

obj1.prototype={

sayName: function(){

返回console . log(this . name);

}

};

/* 对象参数,只继承对象*/

var obj 2=object . create(obj 1);

console . log(obj 2);//{}

console . log(obj 2 . name);//ys

/* console . log(obj 2 . say name());*//*错误obj2.sayName不是函数*/

console.log(obj2。_ _ proto _ _ . prototype . say name());//ys了解原型的原型

如果不明白,看下图。

/* 对象原型,继承对象原型*/

var obj 3=object . create(obj 1 . prototype);

console . log(obj 3);//{}

console . log(obj 3 . name);//未定义,对象本身不被继承。

obj 3 . name=' ys ';

console . log(obj 3 . name);//ys

console . log(obj 3 . say name());//ys

代码看不懂就看图(设置名称后的图):

这个时候相信大家都明白第一个参数了。

这就是本文的全部内容,希望能帮助你更好的创建对象。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: