這篇文章主要用實(shí)例詳解JS原型對(duì)象操作,內(nèi)容簡(jiǎn)而易懂,希望大家可以學(xué)習(xí)一下,學(xué)習(xí)完之后肯定會(huì)有收獲的,下面讓小編帶大家一起來(lái)看看吧。
成都創(chuàng)新互聯(lián)公司主營(yíng)微山網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,重慶APP開(kāi)發(fā)公司,微山h5微信小程序搭建,微山網(wǎng)站營(yíng)銷(xiāo)推廣歡迎微山等地區(qū)企業(yè)咨詢
本文實(shí)例講述了JS原型對(duì)象操作。分享給大家供大家參考,具體如下:
萬(wàn)物皆對(duì)象,函數(shù)也同樣是對(duì)象,是特殊的函數(shù)對(duì)象
function fn() {} let a = new fn(); let b = new Function() console.log(typeof a); // object console.log(typeof b); // function
打開(kāi)瀏覽器,輸入fn,會(huì)發(fā)現(xiàn)fn有一個(gè)prototype(原型)屬性,這個(gè)屬性是一個(gè)指針,指向原型對(duì)象,這個(gè)對(duì)象包括了特定類(lèi)型所有共享的屬性和方法。
換句話說(shuō),prototype對(duì)象包含了函數(shù)所有的共享屬性和方法。
function fn() {} fn.prototype.a = 18; fn.prototype.b = "b"; fn.prototype.test = function() { console.log(123); } var r = new fn(); console.log(r.a); // 18
我們直接在函數(shù)fn的原型屬性上加了兩個(gè)屬性和一個(gè)方法,實(shí)例化后便可以訪問(wèn)原型中的值。
那么實(shí)例怎么搜索變量或者方法的值呢?首先,函數(shù)實(shí)例會(huì)在函數(shù)本身上去尋找該變量,如果沒(méi)有找到,會(huì)在原型對(duì)象上尋找變量。
function fn() {} fn.prototype.a = 18; fn.prototype.b = "b"; fn.prototype.test = function() { console.log(123); } var a = new fn(); var b = new fn(); b.a = 20 console.log(b.a); // 20 console.log(a.a); // 18
創(chuàng)建了兩個(gè)實(shí)例,在b實(shí)例上手動(dòng)添加了一個(gè)a屬性,在fn的原型對(duì)象上也有一個(gè)a屬性,那么對(duì)于b實(shí)例會(huì)優(yōu)先訪問(wèn)本身的屬性而不是原型上的屬性。
以上就是關(guān)于用實(shí)例詳解JS原型對(duì)象操作的內(nèi)容,如果你們有學(xué)習(xí)到知識(shí)或者技能,可以把它分享出去讓更多的人看到。