成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

Javascript對(duì)象原型Prototype的用法

本篇文章展示了Javascript對(duì)象原型Prototype的用法,代碼簡(jiǎn)明扼要容易理解,絕對(duì)能讓你眼前一亮,通過(guò)這篇文章的詳細(xì)介紹希望你能有所收獲。

站在用戶的角度思考問(wèn)題,與客戶深入溝通,找到烏拉特中網(wǎng)站設(shè)計(jì)與烏拉特中網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名申請(qǐng)、網(wǎng)絡(luò)空間、企業(yè)郵箱。業(yè)務(wù)覆蓋烏拉特中地區(qū)。

JavaScript 常被描述為一種基于原型的語(yǔ)言 (prototype-based language)——每個(gè)對(duì)象擁有一個(gè)原型對(duì)象,對(duì)象以其原型為模板、從原型繼承方法和屬性。原型對(duì)象也可能擁有原型,并從中繼承方法和屬性,一層一層、以此類推。這種關(guān)系常被稱為原型鏈 (prototype chain),它解釋了為何一個(gè)對(duì)象會(huì)擁有定義在其他對(duì)象中的屬性和方法。

對(duì)象原型Prototype

1、方法過(guò)載

創(chuàng)建一個(gè)小貓構(gòu)造函數(shù),代碼如下:

function Cat(name,color){
this.name = name;
this.color = color;
 
this.run=function(){
    alert(“一只”+this.color +”的小貓飛奔過(guò)來(lái)...”);
}
this.eat=function(){
    alert(this.name +”要吃魚”);
}
}
 
var cat1 = new Cat();

以上所有用this定義方法,this代表新的實(shí)例,都會(huì)在創(chuàng)建新實(shí)例時(shí)為其創(chuàng)建一個(gè)方法副本。

是不是有點(diǎn)多余,怎么解決 ??

分析:每一個(gè)類型都擁有的特性,每次在實(shí)例級(jí)別定義確實(shí)有點(diǎn)浪費(fèi),那么如果能在類級(jí)別定義,每一個(gè)實(shí)例自動(dòng)擁有類的通用特征就好了。在這里我們就要用到prototype。

2、原型的使用

2.1、 原型屬性

在JavaScript中,函數(shù)本身也是一個(gè)包含了“方法”和“屬性”的對(duì)象。比如之前學(xué)了一些方法(如constructor())及屬性(如name和length)等等。

現(xiàn)在來(lái)介紹一個(gè)新的屬性--原型Prototype。

我們創(chuàng)建的每個(gè)函數(shù)都有一個(gè) prototype(原型)屬性,他指向一個(gè)對(duì)象,而這個(gè)對(duì)象的用途是包含可以由特定類型的所有實(shí)例共享的屬性和方法。

// 定義一個(gè)構(gòu)造器
function Person(name,age){
}
// 函數(shù)的形參個(gè)數(shù)
console.debug(Person.length)// ==>2
// 構(gòu)造函數(shù)
console.debug(Person.constructor)// ==> Function()
// 原型類型
console.debug(typeof Person.prototype)// ==>object
// 原型內(nèi)容
console.debug(Person.prototype)// ↓↓

每一個(gè)類(構(gòu)造函數(shù))都具有一個(gè)prototype屬性,當(dāng)創(chuàng)建這個(gè)類的實(shí)例對(duì)象原型對(duì)象的所有屬性都被立即賦予要?jiǎng)?chuàng)建的對(duì)象中。

2.2、原型操作

設(shè)值:

構(gòu)造函數(shù).原型.屬性=屬性值
構(gòu)造函數(shù).原型.方法=函數(shù)

取值:

對(duì)象.屬性
對(duì)象.方法()

2.3、屬性訪問(wèn)的優(yōu)先級(jí)

原生屬性的優(yōu)先級(jí)高于原型屬性。遵循從上到下查找:

Javascript對(duì)象原型Prototype的用法

2.4、神秘的__proto__屬性

訪問(wèn)對(duì)象上面的屬性,直接通過(guò)object.name訪問(wèn)。

神奇的user.__proto__屬性,該屬性其實(shí)就是對(duì)應(yīng)User類的prototype屬性。

console.debug(user.__proto__===User.prototyp);//==> true;

_proto_屬性屬于對(duì)象實(shí)例,prototype屬性類的屬性。

每個(gè)對(duì)象在創(chuàng)建后,都會(huì)自動(dòng)建立一個(gè)到prototype上的引用,讓對(duì)象具備類型原型的所有特征。

一個(gè)對(duì)象中的__proto__(prototype)屬性中的成員,可以直接通過(guò)object.成員進(jìn)行訪問(wèn)。

總結(jié):

每個(gè)類都有獨(dú)立的prototype屬性,向prototype對(duì)象上面添加屬性,對(duì)象實(shí)例可以共享prototype對(duì)象上面的屬性,如果對(duì)象本身已存在某個(gè)屬性,使用對(duì)象本身上面的屬性,如果沒(méi)有則使用prototype上面的屬性,如果是添加屬性添加到對(duì)象上面,不影響對(duì)象的原型對(duì)象。

看完上述內(nèi)容,你們掌握J(rèn)avascript對(duì)象原型Prototype的用法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!

分享文章:Javascript對(duì)象原型Prototype的用法
文章URL:http://jinyejixie.com/article42/ppehhc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、網(wǎng)站設(shè)計(jì)公司、App設(shè)計(jì)小程序開發(fā)、網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司
新龙县| 噶尔县| 普洱| 高阳县| 江西省| 许昌市| 株洲市| 辉县市| 灵丘县| 申扎县| 九江县| 玛曲县| 广水市| 高雄市| 三穗县| 锦州市| 普定县| 辽阳市| 两当县| 乐清市| 中宁县| 淮北市| 桑植县| 嵩明县| 托克逊县| 江安县| 根河市| 六安市| 信宜市| 宁陵县| 湖南省| 东台市| 闸北区| 高平市| 化德县| 西和县| 永川市| 赣州市| 西城区| 凌云县| 通化市|