亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

js創建對象的方法匯總

2019-11-20 10:50:31
字體:
來源:轉載
供稿:網友

js一個有三種方法創建對象,這里做一個總結.

1.對象直接量

所謂對象直接量,可以看做是一副映射表,這個方法也是最直接的一個方法,個人比較建議,

//創建簡單對象var obj1 = {}; //空對象var obj2 = {  name: "ys",  age: 12};//創建復雜對象var obj3 = {  name: "ys",  age: 12,  like: {    drink: "water",    eat: "food"  }};console.log(typeof obj1);  //objectconsole.log(typeof obj2);  //objectconsole.log(typeof obj3);  //object

有的人可能會發現,這里的鍵值名怎么沒有引號”“,好細心,其實這個引號(單引雙引號,js一樣)加不加都行,但是個人建議加上,為什么能,因為加上之后,鍵值名可以很隨意….當然如果你不亂定義名字的話,第一個比較好,因人而異,

var obj4 = {  "my name": "ys",  //鍵值名中間有空格  "my-age": 12,    //鍵值名中間有連字符  "while": 111    //鍵值名是關鍵字}console.log(obj4['my name']);  //ysconsole.log(obj4['my-age']);  //12console.log(obj4.while);    //111console.log(typeof obj3);    //object

通過上面的例子,大家可以看出”.”和”[]”訪問屬性的區別了吧

對象直接量創建的對象,鍵值對的值支持表達式,如下

var obj3 = {  name: "ys",  age: obj2.age,   //引用obj2.age  like: {    drink: "water",    eat: "food"  }};console.log(obj3.age); //100

2.new創建對象

1).系統內置對象

var obj1 = new Object();var obj2 = new Array();var obj3 = new Date();var obj4 = new RegExp("ys");console.log(typeof obj1);  //objectconsole.log(typeof obj2);  //objectconsole.log(typeof obj3);  //objectconsole.log(typeof obj4);  //object

2).自定義對象

function Person(name, age){  this.name = name;  this.age = age;}var obj1 = new Person("ys", 12);console.log(Object.prototype.toString.call(obj1));  //objectconsole.log(Person instanceof Object);        //trueconsole.log(typeof obj1);              //objectconsole.log(obj1.age);                //12

3.Object.create()創建

該方法有兩個參數,我就只解釋下第一參數,第二個參數不常用(對對象的屬性進行進一步描述)
第一個參數:傳入要繼承的原型(prototype)對象
怎樣理解這句話呢?

var obj1 = Object.create({  name: "ys",  age: 12});console.log(obj1);     //{}console.log(obj1.age);   //12

obj1為{},為什么可以訪問到屬性值呢?我們理解下第一個參數的意義“傳入要繼承的原型對象”

console.log(obj1.__proto__);  //Object {name: "ys", age: 12}

對象本身為空,但是原型鏈上數據不為空,存在obj1.age,所以可以訪問到。

1).當第一個參數為null時

var obj2 = Object.create(null);   //不繼承對象應有的屬性和方法console.log(obj2 + "abc");     //報錯 ,失去 + 功能

為什么會報錯呢?正常參數下生成的圖如下:

通過圖可以看出,要繼承的原型對象(即參數)又繼承了Object的原型對象,關鍵原因來了,Object的原型對象包含了一些js對象的基本方法(indexOf(),toString(),'+'功能……)而這個時候,如果參數為null,那么這條繼承鏈就斷了。

這個時候大家應該理解了一句話了吧,JavaScript中所有的對象都繼承自Object,以為Object處于繼承鏈的最頂端。

2).創建空對象

var obj3 = Object.create(Object.prototype); console.log(obj3);              //{},(空對象,與前兩個方法 {},new Object 相同)console.log(obj3.__proto__);         //如下圖 ,只包含了基本對象的方法

代碼的圖:

這樣創建的對象,只包含了對象的基本方法。

3).最后大家看下面的代碼,希望能更深刻的理解Object.create()方法,大家可以參考這篇文章:《一種新的javascript對象創建方式Object.create()》

var obj1 = {  name: "ys",  age: 12};obj1.prototype = {  sayName: function(){    return console.log(this.name);  }};
/*①對象參數,只繼承對象*/var obj2 = Object.create(obj1);console.log(obj2);                 //{}console.log(obj2.name);               //ys/*console.log(obj2.sayName());*/          /* 報錯 obj2.sayName is not a function*/console.log(obj2.__proto__.prototype.sayName());  //ys 理解原型的原型

如果不理解的話,看下面的圖

/*②對象原型,繼承對象原型*/var obj3 = Object.create(obj1.prototype);console.log(obj3);                 //{}console.log(obj3.name);               //undefined,沒有繼承對象本身obj3.name = "ys";console.log(obj3.name);               //ysconsole.log(obj3.sayName());            //ys

代碼不理解看圖(設置name后的圖):

這個時候相信大家都理解第一個參數了吧。

以上就是本文的全部內容,希望可以幫助大家更好的創建對象。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
色偷偷噜噜噜亚洲男人| 亚洲第一免费网站| 成人乱人伦精品视频在线观看| 57pao成人永久免费视频| 亚洲娇小xxxx欧美娇小| 国产999精品久久久影片官网| 亚洲a∨日韩av高清在线观看| 97久久国产精品| 黑人巨大精品欧美一区二区免费| 亚洲欧美三级伦理| 国产一区二区丝袜高跟鞋图片| 成人欧美一区二区三区黑人孕妇| www国产亚洲精品久久网站| 亚洲第一页自拍| 久久九九有精品国产23| 亚洲最新中文字幕| 欧美精品一区二区免费| 高清欧美性猛交xxxx黑人猛交| 久久99久久久久久久噜噜| 日韩大胆人体377p| 国产欧美精品va在线观看| 日韩av一区在线| 91久久久久久久一区二区| 亚洲一区久久久| 欧美成人免费va影院高清| 色先锋资源久久综合5566| 亚洲精品第一国产综合精品| 国产日本欧美一区二区三区| 成人黄色在线免费| 亚洲大胆人体视频| 久久视频这里只有精品| 亚洲天堂av高清| 精品国模在线视频| 久久伊人色综合| 国产欧美日韩亚洲精品| 亚洲少妇激情视频| 91av在线影院| 精品国产91久久久久久老师| 欧美一级大片在线免费观看| 国产精品羞羞答答| 亚洲无限乱码一二三四麻| 国产一区二区三区久久精品| 久久久久久久久久亚洲| 91在线观看免费| 亚洲伦理中文字幕| 日韩精品久久久久久福利| 北条麻妃99精品青青久久| www日韩中文字幕在线看| 国产视频精品va久久久久久| 成人精品福利视频| 国产精品手机播放| 在线亚洲国产精品网| 红桃av永久久久| 欧美亚洲第一页| 国产精品高潮粉嫩av| 好吊成人免视频| 色综合伊人色综合网站| 亚洲人午夜精品免费| 最近免费中文字幕视频2019| 国产精品男人的天堂| 久久97精品久久久久久久不卡| 久久在线视频在线| 日韩中文字幕在线观看| 色婷婷综合成人| 久久成人一区二区| 97视频在线观看播放| 国产精品精品久久久久久| 久久国产精品网站| 欧美精品电影免费在线观看| 91免费看视频.| 亚洲欧洲av一区二区| 国产精品27p| 欧美风情在线观看| 欧美三级欧美成人高清www| 欧美中文字幕视频在线观看| 亚洲一区二区中文字幕| 欧美激情视频播放| 亚洲午夜久久久影院| 国产欧美va欧美va香蕉在| 欧美人成在线视频| 欧美性开放视频| 国产999精品久久久影片官网| 精品久久中文字幕久久av| 色青青草原桃花久久综合| 亚洲伊人久久大香线蕉av| 日韩免费av在线| 97在线免费观看视频| 97视频在线观看亚洲| 91影院在线免费观看视频| 日本韩国在线不卡| 精品国产欧美一区二区五十路| 欧美极品少妇xxxxⅹ喷水| 久久久久免费视频| 国产一区二区av| 国产精品扒开腿做爽爽爽视频| 欧美美最猛性xxxxxx| 国产99久久久欧美黑人| 国产精品a久久久久久| 成人黄色免费在线观看| 国产亚洲欧洲高清一区| 国产一区二区三区毛片| 欧美激情精品久久久久久| 北条麻妃久久精品| 国产亚洲欧美一区| 精品国产一区二区三区久久狼黑人| 亚洲自拍小视频免费观看| 韩国美女主播一区| 欧美日韩国产一区在线| 亚洲性线免费观看视频成熟| 日韩激情av在线免费观看| 国产一区二区三区在线观看网站| 久久久免费精品视频| 国产欧美日韩最新| 97视频免费在线观看| 欧美视频在线视频| 欧美精品videossex性护士| 91精品国产91久久| 日韩中文视频免费在线观看| 亚洲天堂免费观看| 日韩在线观看免费高清完整版| 国模吧一区二区三区| 欧美第一黄网免费网站| 精品久久久久久久久久久久| 国产精品国产自产拍高清av水多| 欧美贵妇videos办公室| 亚洲97在线观看| 日本中文字幕不卡免费| 韩国视频理论视频久久| 亚洲欧美日韩精品久久奇米色影视| 欧美精品videossex性护士| 97在线观看视频| 操91在线视频| 国内外成人免费激情在线视频| 国产精品99免视看9| 搡老女人一区二区三区视频tv| 国产精品第100页| 中日韩美女免费视频网站在线观看| 日韩在线观看视频免费| 色婷婷久久一区二区| 国产综合香蕉五月婷在线| 欧美日韩电影在线观看| 欧美午夜激情小视频| 亚洲精品久久久久| 91高清视频免费观看| 欧美猛男性生活免费| 国产狼人综合免费视频| 亚洲美女福利视频网站| 欧美亚洲国产视频| 亚洲精品福利在线观看| 96pao国产成视频永久免费| 大荫蒂欧美视频另类xxxx| 欧美成人性生活| 欧美大成色www永久网站婷| 亚洲视频在线播放| 日本三级韩国三级久久| 日韩精品有码在线观看| 亚洲精品福利在线| 亚洲日韩欧美视频| 欧美黑人性生活视频| 亚洲欧美日本伦理| 不卡av在线网站| 日韩视频在线一区| zzjj国产精品一区二区| 亚洲精品乱码久久久久久金桔影视|