您好,登錄后才能下訂單哦!
本篇內(nèi)容主要講解“JS創(chuàng)建對(duì)象的方式是什么”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“JS創(chuàng)建對(duì)象的方式是什么”吧!
創(chuàng)建對(duì)象的4種方式:
1.字面量的方式去創(chuàng)建對(duì)象
2.使用new
字符創(chuàng)建對(duì)象
3.自定義構(gòu)造函數(shù)
4.工廠模式創(chuàng)建對(duì)象
對(duì)象是指:具有屬性和方法
var person1={ name:'柯南', age:12, sex:'男', eat:function(){ console.log("我餓了,想吃飯") }, say:function(){ console.log("我叫柯南") } } console.log("person.eat輸出函數(shù)",person.eat) person.eat(); //直接輸出 我餓了,想吃飯
我們需要注意的是:person.eat和person.eat()的區(qū)別
person.eat是輸出函數(shù)
person.eat()是調(diào)用函數(shù)
var person2=new Object(); person2.name='柯南' person2.age='21' person2.sex='男' person2.eat=function(){ console.log("我餓了,想吃飯") } person2.say=function(){ console.log("我叫柯南") } console.log( '性別',person2.sex ) //輸出男
上面這兩種方式去創(chuàng)建對(duì)象的缺點(diǎn):
雖然上面這兩種都可以去創(chuàng)建對(duì)象
但是我們創(chuàng)建出來(lái)的對(duì)象壓根就不知道是什么類型?
當(dāng)然我們知道他們是OBject類型
這個(gè)時(shí)候我們就需要使用自定義構(gòu)造函數(shù)去創(chuàng)建對(duì)象了
function Person(name,age,sex,like){ console.log('沒有給like形參傳遞值就是undeined',like) // 這里的this指向的是Person這個(gè)對(duì)象 console.log('this',this) this.name=name; this.age=age; this.sex=sex; this.say=function(){ console.log("我叫",name) } } //這一行代碼表示的是創(chuàng)建一個(gè)對(duì)象 //同時(shí)實(shí)例化一個(gè)對(duì)象 //并且給這個(gè)對(duì)象的屬性進(jìn)行初始化 //所以這一行代碼并不簡(jiǎn)單 let per1=new Person('柯南',19,'男'); per1.say(); console.log(per1 instanceof Person);//true
現(xiàn)在我們知道了per1
是屬于Person
類型的,這就是自定構(gòu)造函數(shù)創(chuàng)建對(duì)象的優(yōu)勢(shì),我們知道它創(chuàng)建的對(duì)象是哪個(gè)類型的
ps:構(gòu)造函數(shù)通常首字母大寫
當(dāng)我們new一個(gè)對(duì)象的時(shí)候做了四件事情:
通過(guò)創(chuàng)建自定義對(duì)象我們明白了當(dāng)我們new一個(gè)對(duì)象的時(shí)候做了四件事情
1.開辟空間存儲(chǔ)當(dāng)前對(duì)象
2.把this
設(shè)置為當(dāng)前對(duì)象
3.設(shè)置屬性和方法
4.把this
對(duì)象返回
function createObj(name,age) { let obj=new Object(); obj.name=name; obj.age=age; obj.sayHi=function(){ console.log(obj.name) } return obj; } let per=createObj('司藤',200) console.log(per.age); //200 per.sayHi(); //司藤
到此,相信大家對(duì)“JS創(chuàng)建對(duì)象的方式是什么”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。