欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

Javascript之封裝(Package)

一、 構(gòu)造函數(shù)(Constructor)模式的封裝
為了解決從原型對象生成實例的問題,Javascript提供了一個構(gòu)造函數(shù)(Constructor)模式。
所謂"構(gòu)造函數(shù)",其實就是一個普通函數(shù),但是內(nèi)部使用了this變量。對構(gòu)造函數(shù)使用new運算符,就能生成實例,并且this變量會綁定在實例對象上。
舉個例子,下面生成的是狗的原型對象:

創(chuàng)新互聯(lián)建站是一家集網(wǎng)站建設(shè),都勻企業(yè)網(wǎng)站建設(shè),都勻品牌網(wǎng)站建設(shè),網(wǎng)站定制,都勻網(wǎng)站建設(shè)報價,網(wǎng)絡營銷,網(wǎng)絡優(yōu)化,都勻網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學習、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。

function Dog(name,color,species){

this.name = name;

this.color = color;

this.species = species;

this.type = "犬科動物";

}

生成實例對象如下:

var dog1 = new Dog("大黃","黃色","中華田園犬");

var dog2 = new Dog("小黑","黑色","德國黑背");

alert(dog1.name); //大黃

alert(dog2.color); //黑色

這時dog1和dog2會自動含有一個constructor屬性,指向它們的構(gòu)造函數(shù)。

alert(dog1.constructor == Dog); //true

alert(dog2.constructor == Dog); //true

Javascript還提供了一個instanceof運算符,驗證原型對象與實例對象之間的關(guān)系。

alert(dog1 instanceof Dog); //true

alert(dog2 instanceof Dog); //true

但是,構(gòu)造函數(shù)模式也存在浪費內(nèi)存的問題。因為對于每一個實例對象,type屬性都是一樣的內(nèi)容,每生成一個實例對象,都必須為重復的內(nèi)容多分配一次內(nèi)存,這樣既不節(jié)省,也缺乏效率。因此,我們應該想出一種讓type這樣的屬性在內(nèi)存中只生成一次,并且所有實例都指向這個內(nèi)存地址的方法。

二、 構(gòu)造函數(shù)結(jié)合原型屬性(Prototype)模式的封裝
針對構(gòu)造函數(shù)方法會浪費內(nèi)存的問題,有下面的解決方案,即將那些不變的屬性和方法,直接定義在構(gòu)造函數(shù)的Prototype對象上。

function Dog(name,color,species){

this.name = name;

this.color = color;

this.species = species;

}

Dog.prototype.type = "犬科動物";

生成實例對象如下:

var dog1 = new Dog("大黃","黃色","中華田園犬");

var dog2 = new Dog("小黑","黑色","德國黑背");

alert(dog1.type); //犬科動物

這時所有實例的type屬性,其實都是同一個內(nèi)存地址,指向prototype對象,因此就提高了運行效率。


三、 Prototype模式的驗證方法
為了配合prototype屬性,Javascript定義了一些輔助方法,幫助我們使用它。

3.1 isPrototypeOf()

這個方法用來判斷,某個proptotype對象和某個實例之間的關(guān)系。

alert(Dog.prototype.isPrototypeOf(dog1)); //true

alert(Dog.prototype.isPrototypeOf(dog2)); //true

3.2 hasOwnProperty()

每個實例對象都有一個hasOwnProperty()方法,用來判斷某一個屬性到底是本地屬性,還是繼承自prototype對象的屬性。

alert(dog1.hasOwnProperty("name")); // true

alert(dog1.hasOwnProperty("type")); // false

3.3 in運算符

in運算符可以用來判斷,某個實例是否含有某個屬性,不管是不是本地屬性。

alert("name" in dog1); // true

alert("type" in dog1); // true

in運算符還可以用來遍歷某個對象的所有屬性。

for(var prop in dog1) { alert("dog1["+prop+"]="+dog1[prop]); }

總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對創(chuàng)新互聯(lián)的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接

名稱欄目:Javascript之封裝(Package)
本文鏈接:http://www.aaarwkj.com/article40/jpogho.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應網(wǎng)站、手機網(wǎng)站建設(shè)、網(wǎng)站設(shè)計公司、微信公眾號、網(wǎng)站策劃、用戶體驗

廣告

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

成都網(wǎng)站建設(shè)
国产一区二区爽爽爽视频| 久久亚洲av电影网站| 久久 久久国内精品亚洲| 国产av一区最新精品麻豆| 国产精品久久一级黄片| 欧美电影剧情av在线| 亚洲精品一品区二品区三区| 密桃精品一区二区三区在线观看| 欧美欧美欧美欧美在线| 风韵丰满熟妇啪啪老熟女| 91麻豆精品国产久久久| 亚洲国产中文一区二区久久| 天天躁日日躁夜夜躁夜夜| 国产91美女黄色在线观看| 精品伊人久久大香线蕉| 一区二区三区高清人妻日本| 久久精品国产精品亚洲片| 欧美日韩国产成人一区| 99久久精品国产熟女| 亚洲国产精品一区二区| 丁香色婷婷国产精品视频| 一级丰满少妇av大片| 日韩欧美精品久久黄| 五月婷婷六月丁香综合激情| 国产伦精品二区三区视频| 久久久精品国产亚洲av日韩| 亚洲精品一二三区免费| 国产一级一片内射视频| 国产亚洲精品第一综合| 日韩视频一区二区三区系列| 91人妻这里只有精品| 国产亚洲一线二线三线| 亚洲综合成人av在线| 日本一区二区日本一区| 视频一区欧美日韩精品| 日本韩国国语对白一区二区三区| 国产蜜臀视频一区二区三区| 国产精品一级自拍视频| 日韩国产推荐一区二区| 欧美日韩国产精品一区二区在线观看 | 抱着操才爽的免费视频观看|