手机版

js创建对象方法概述

时间:2021-09-19 来源:互联网 编辑:宝哥软件园 浏览:

有三种方法可以在js中创建对象。这里总结一下。

1.对象直接量。

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

//创建一个简单的对象var obj 1={ };//空对象varobj2={name:' ys ',age : 12 };//创建复杂对象varobj3={name:' ys ',age: 12,like: {drink:' water ',eat: ' food ' } }console . log(obj 1的类型);//object console . log(obj 2的类型);//object console . log(obj 3的类型);//对象有些人可能会发现这里的键名没有引号。它非常小心。其实加上这个引号就可以了(只要加上双引号就可以了,就像js一样),但是我个人建议加上。为什么呢?因为添加之后,键名可以很随意.当然,如果不乱定义名字,第一个更好,因人而异。

Var obj4={'my name': 'ys ',//键名中间有空格' my-age' : 12,//键名中间有连字符' while ' : 111键名是关键字} console . log(obj 4[' my name ']);//ysconsole . log(obj 4[' my-age ']);//12 con sole . log(obj 4 . while);//111 console . log(type of obj 3);//对象通过上面的例子,可以看出“.”的区别和“]”访问属性。

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

Varobj3={name:' ys ',age:obj2。年龄,//参见obj2。agelike: {饮用水,食物} };console . log(obj 3 . age);//1002.new创建一个对象。

1).系统内置对象。

var obj1=新对象();var obj2=新数组();var obj3=新日期();var obj 4=new RegExp(' ys ');console . log(obj 1的类型);//object console . log(obj 2的类型);//object console . log(obj 3的类型);//object console . log(obj 4的类型);//object2)。自定义对象。

函数Person(姓名、年龄){ this.name=namethis.age=年龄;}var obj1=新人(' ys ',12);console . log(object . prototype . tostring . call(obj 1));//objectconsole.log(对象的人员实例);//true console . log(obj 1的类型);//object console . log(obj 1 . age);//123.要创建的对象。

这个方法有两个参数,所以我只解释第一个参数,但是第二个参数不常用(进一步描述对象的属性)。第一个参数:传入要继承的原型对象。这句话怎么理解?

var obj 1=object . create({ name : ' ys ',age : 12 });console . log(obj 1);//{ } console . log(obj 1 . age);//12obj1是{},为什么可以访问属性值?让我们理解第一个参数的含义,“传入要继承的原型对象”。

console.log(obj1。_ _ proto _ _);//对象{名称: 'ys ',年龄: 12}

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

1).当第一个参数为空时。

var obj2=Object.create(空);//不要继承对象应有的属性和方法console . log(obj 2 ' ABC ');//报告错误。为什么当您失去功能时会报告错误?正常参数下生成的图形如下:

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

这时,我们应该明白一句话。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={ name: 'ys,age : 12 };目标1。prototype={ SayName : function(){ return console。日志(这个。姓名);}};/*对象参数,只继承对象*/var obj 2=对象。create(obj 1);控制台。日志(obj 2);//{ }控制台。日志(obj 2。姓名);//ys/*控制台。日志(obj 2。SayName());*//* 报错obj2.sayName不是函数*/console.log(obj2 ._ _原型_ _。原型。SayName());//ys理解原型的原型如果不理解的话,看下面的图

/*对象原型,继承对象原型*/var obj 3=对象。创建(obj 1。原型);控制台。日志(obj 3);//{ }控制台。日志(obj 3。姓名);//未定义,没有继承对象本身目标3。名称=' ys控制台。日志(obj 3。姓名);//ysconsole。日志(obj 3。SayName());//ys代码不理解看图(设置名字后的图):

这个时候相信大家都理解第一个参数了吧。

以上就是本文的全部内容,希望可以帮助大家更好的创建对象。

版权声明:js创建对象方法概述是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。