内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

js中原型鏈、閉包四種作用、繼承、命名空間、枚舉類型的案例分析-創(chuàng)新互聯(lián)

這篇文章主要介紹了js中原型鏈、閉包四種作用、繼承、命名空間、枚舉類型的案例分析,具有一定借鑒價(jià)值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。

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

原型鏈

JavaScript 對象是動(dòng)態(tài)的屬性“包”(指其自己的屬性)。JavaScript 對象有一個(gè)指向一個(gè)原型對象的鏈。當(dāng)試圖訪問一個(gè)對象的屬性時(shí),它不僅僅在該對象上搜尋,還會(huì)搜尋該對象的原型,以及該對象的原型的原型,依次層層向上搜索,直到找到一個(gè)名字匹配的屬性或到達(dá)原型鏈的末尾。

在不影響origin的原型鏈的前提下,創(chuàng)建一個(gè)target復(fù)制origin的原型鏈

var inherit = (function(){
    var F = function (){};
    return function (Target, Origin){
        F.prototype = Origin.prototype; 
        Target.prototype = new F();
        Target.prototype.constructor = Target;   //目標(biāo)函數(shù)的原型的構(gòu)造函數(shù)定義為目標(biāo)函數(shù)
        Target.prototype.uber = Origin.prototype; //uber超類,指的是目標(biāo)函數(shù)的最終原型為Orign的原型
        }
    }())

繼承

一般公司常用立即執(zhí)行函數(shù)寫功能,而且調(diào)用一個(gè)init()初始化函數(shù)

代碼中的callname()中的call作用是改變this指針,將name的this指向改為當(dāng)前函數(shù)下的this

注意的是要用return返回函數(shù)

<script>
var init=(function(){
    var name ='辣雞';
    function callname(){
        console.log(name);
        }
    return function(){
        callname();
        }
    }())
init();
</script>

枚舉:

var org={
    name:'智障',
    sex:'男',
    height:178
}
for ( var proto in org ){
    console.log(org.proto)
}

這樣子會(huì)打印三次undefined,因?yàn)榇藭r(shí)會(huì)把proto當(dāng)成對象的某個(gè)屬性,要把代碼中的org.proto改為org[proto],否則會(huì)默認(rèn)理解為org['proto']。

正常輸出如下,打印出三個(gè)值,若想打印屬性,則直接console.log(proto)

js中原型鏈、閉包四種作用、繼承、命名空間、枚舉類型的案例分析

對象的枚舉,三種方法:

for in -----> 1.instanceof             2.hasOwnProperty        3. in

1、instance of

A instance of B

判斷A對象是不是B的構(gòu)造函數(shù)構(gòu)造出來的

function Person(){}
var person = new Person();

js中原型鏈、閉包四種作用、繼承、命名空間、枚舉類型的案例分析

所以識別數(shù)組和對象的方法------->1. instanceof  2. to String   call        3.constructor

1)var obj={}

js中原型鏈、閉包四種作用、繼承、命名空間、枚舉類型的案例分析

2)toString   call

js中原型鏈、閉包四種作用、繼承、命名空間、枚舉類型的案例分析

3)constructor

var obj = {}

js中原型鏈、閉包四種作用、繼承、命名空間、枚舉類型的案例分析

看A對象的原型鏈上有沒有B的原型

2、hasOwnProperty,判斷是否屬于自己的方法,可以排除原型的方法__proto__

var org={
    name:'智障',
    sex:'男',
    height:178,
    __proto__:{
        lastName:'zhang'
        }
    }for(var prop in org){    if(org.hasOwnProperty( prop )){
    console.log(prop)
    }
}var obj={};

js中原型鏈、閉包四種作用、繼承、命名空間、枚舉類型的案例分析

3、in

in 和 hasOwnProperty 情況類型,但是原型中的方法也存在方法列舉中

js中原型鏈、閉包四種作用、繼承、命名空間、枚舉類型的案例分析

當(dāng)內(nèi)部函數(shù)被保存在外部時(shí),會(huì)生成閉包函數(shù),閉包會(huì)導(dǎo)致原有作用域鏈不釋放,造成內(nèi)存泄漏

閉包四種作用:

1.實(shí)現(xiàn)公有變量  eg:累加器

2.可以做緩存(存儲(chǔ)結(jié)構(gòu))

3.實(shí)現(xiàn)封裝,屬性私有化

4.模塊化開發(fā),防止污染全局變量(圣杯模式)

/用閉包來定義公共函數(shù),并令其可以訪問私有函數(shù)和變量。這個(gè)方式也稱為 模塊模式(module pattern)(圣杯模式)

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享js中原型鏈、閉包四種作用、繼承、命名空間、枚舉類型的案例分析內(nèi)容對大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián)建站,關(guān)注創(chuàng)新互聯(lián)網(wǎng)站制作公司行業(yè)資訊頻道,遇到問題就找創(chuàng)新互聯(lián)建站,詳細(xì)的解決方法等著你來學(xué)習(xí)!

分享名稱:js中原型鏈、閉包四種作用、繼承、命名空間、枚舉類型的案例分析-創(chuàng)新互聯(lián)
標(biāo)題網(wǎng)址:http://www.rwnh.cn/article24/cegpce.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護(hù)、企業(yè)網(wǎng)站制作、網(wǎng)站建設(shè)用戶體驗(yàn)、電子商務(wù)、定制網(wǎng)站

廣告

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

h5響應(yīng)式網(wǎng)站建設(shè)
罗山县| 东城区| 雅安市| 屯昌县| 福安市| 连平县| 章丘市| 山阴县| 岳阳市| 当雄县| 深圳市| 伽师县| 郓城县| 任丘市| 徐闻县| 岱山县| 新田县| 稻城县| 通化市| 哈巴河县| 福州市| 英德市| 津南区| 平谷区| 临猗县| 洛隆县| 罗定市| 宁安市| 温宿县| 翁源县| 纳雍县| 志丹县| 沾化县| 鲁山县| 犍为县| 彰化县| 横峰县| 临沂市| 会东县| 灵丘县| 曲沃县|