成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

JavaScript面向?qū)ο笾械膖his關(guān)鍵字個(gè)人分享

nevermind / 2029人閱讀

摘要:關(guān)鍵字關(guān)鍵字描述本身沒(méi)有任何含義但它也可以代表任何含義被自動(dòng)定義在所有的函數(shù)作用域中都有一個(gè)共同點(diǎn)它總是要返回一個(gè)對(duì)象指向哪個(gè)對(duì)象不取決于定義在哪它取決于調(diào)用位置注意建議搞不明白時(shí)盡量不要使用否則會(huì)很混亂一定要理解之后使用的基本用法表示在函

this關(guān)鍵字 this關(guān)鍵字描述

this本身沒(méi)有任何含義,但它也可以代表任何含義

this被自動(dòng)定義在所有的"函數(shù)"作用域中

this都有一個(gè)共同點(diǎn),它總是要返回一個(gè)對(duì)象

this指向哪個(gè)對(duì)象,不取決于定義在哪,它取決于調(diào)用位置

注意: 建議搞不明白時(shí)盡量不要使用否則會(huì)很混亂,一定要理解之后使用

this的基本用法

表示在函數(shù)中使用this,在調(diào)用該函數(shù)時(shí),this沒(méi)有具體的指向目標(biāo),會(huì)默認(rèn)為this指向全局對(duì)象

示例代碼:

// 定義一個(gè)全局變量
var v = 100;
// this經(jīng)常被定義在函數(shù)的作用域中
function fn() {
    // this總是要返回一個(gè)對(duì)象
    console.error(this.v);// this指向哪個(gè)對(duì)象,不取決于函數(shù)定義的位置
}
// this指向哪個(gè)對(duì)象,取決于調(diào)用的位置
// fn();// 函數(shù)的調(diào)用


// 定義一個(gè)對(duì)象,將fn函數(shù)作為obj對(duì)象的方法
var obj = {
    v : 200,
    f : fn
};
// obj.f();
console.error(this.v);

代碼分析圖:

隱式綁定丟失

隱式綁定丟失需要注意的是: 將一個(gè)指定對(duì)象中的指定方法賦值給一個(gè)全局變量,在調(diào)用全局變量時(shí),this將從原本指向具體對(duì)象,變成指向全局對(duì)象

表示一個(gè)函數(shù)被另一對(duì)象所擁有或包含,從形成的上下文關(guān)系,這時(shí)this會(huì)指向該對(duì)象

示例代碼:

// 定義一個(gè)全局變量
var v = 100;
// this經(jīng)常被定義在函數(shù)的作用域中
function fn() {
    // this總是要返回一個(gè)對(duì)象
    console.error(this.v);// this指向哪個(gè)對(duì)象,不取決于函數(shù)定義的位置
}
// this指向哪個(gè)對(duì)象,取決于調(diào)用的位置
// fn();// 函數(shù)的調(diào)用


// 定義一個(gè)對(duì)象,將fn函數(shù)作為obj對(duì)象的方法
var obj = {
    v : 200,
    f : fn
};
// obj.f();
console.error(this.v);

代碼分析圖:

顯示綁定

用于處理隱式綁定丟失的一種方法

在調(diào)用函數(shù)時(shí)就明確this所指向的對(duì)象

示例代碼:

// 定義一個(gè)全局變量
var v = 100;
// 定義一個(gè)函數(shù)
function fn() {
    console.log(this.v);
}
// 定義一個(gè)對(duì)象
var obj = {
    v : 200,
    f : fn// 對(duì)象的f()方法指向fn()函數(shù)
};
// 定義一個(gè)全局變量,并被賦值為對(duì)象obj的f()方法
var fun = obj.f;
// 將fun作為一個(gè)函數(shù)進(jìn)行調(diào)用
fun.apply(obj);
new綁定

通過(guò)構(gòu)造函數(shù)所創(chuàng)建的對(duì)象,會(huì)成為該構(gòu)造函數(shù)中的this所指向的對(duì)象

示例代碼:

function Hero(name) {
this.name = name;
}
// this取決于函數(shù)調(diào)用的位置
var hero1 = new Hero("花木蘭");

var hero2 = new Hero("秦始皇");

console.log(hero1.name);// 調(diào)用結(jié)果為 花木蘭
被忽略的this

在使用apply()方法或call()方法來(lái)調(diào)用函數(shù)時(shí),將null或undefined做為this綁定的對(duì)象傳入時(shí),會(huì)被忽略,并將this的綁定方式變成默認(rèn)綁定

示例代碼:

/* 定義函數(shù) */
function fn() {
    console.log(this.v);
}
/* 定義全局變量 */
var v = 100;

fn.call(null);// 調(diào)用結(jié)果為 undefined (在瀏覽器環(huán)境中會(huì)顯示 100 全局變量)
間接引用

表示將this從隱式綁定或顯示綁定(有明確的指向?qū)ο螅┳兂赡J(rèn)綁定(指向全局對(duì)象)

示例代碼:

/* 定義一個(gè)函數(shù) */
function foo() {
    console.log(this.a);
}
/* 定義一個(gè)全局變量 */
var a = 2;
/* 定義一個(gè)對(duì)象 */
var o = {
    a : 3,
    foo : foo
};
o.foo();// 調(diào)用結(jié)果為 3
var p = {a : 4};

// p.foo = o.foo;
// p.foo();// 4

(p.foo = o.foo)();// 調(diào)用結(jié)果為 undefined(瀏覽器環(huán)境中會(huì)顯示 2 全局變量)

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/96938.html

相關(guān)文章

  • JavaScript中的面向對(duì)象個(gè)人分享

    摘要:面向?qū)ο竺嫦驅(qū)ο蟮母拍钏^面向?qū)ο缶陀贸橄蠓绞絼?chuàng)建基于顯示世界模型的一種變成模式面向?qū)ο缶幊炭梢钥醋鍪鞘褂靡幌盗袑?duì)象互相協(xié)作的軟件設(shè)計(jì)備注面向?qū)ο笕Q(chēng)簡(jiǎn)稱(chēng)面向?qū)ο缶幊痰闹饕齻€(gè)特征是封裝所謂封裝就是按要求使用得到對(duì)象的結(jié)果相關(guān)數(shù)據(jù)用于存儲(chǔ) 面向?qū)ο?面向?qū)ο蟮母拍? 所謂面向?qū)ο缶陀贸橄蠓绞絼?chuàng)建基于顯示世界模型的一種變成模式,面向?qū)ο缶幊炭梢钥醋鍪鞘褂靡幌盗袑?duì)象互相協(xié)作的軟件設(shè)計(jì) 備注...

    DirtyMind 評(píng)論0 收藏0
  • JavaScript面向對(duì)象中的原型個(gè)人分享

    摘要:原型原型是什么所謂原型就是類(lèi)型對(duì)象的一個(gè)屬性在函數(shù)定義時(shí)就包含了屬性它的初始值是以個(gè)空對(duì)象在中并沒(méi)有定義函數(shù)的原型類(lèi)型所以原型可以是任何類(lèi)型原型是用于保存對(duì)象的共享屬性和方法的原型的屬性和方法并不會(huì)影響函數(shù)本身的屬性和方法示例代碼類(lèi)型的屬性 原型 原型是什么 所謂原型(Prototype)就是Function類(lèi)型對(duì)象的一個(gè)屬性 在函數(shù)定義時(shí)就包含了prototype屬性,它的初始值是...

    pakolagij 評(píng)論0 收藏0
  • JavaScript面向對(duì)象中的繼承個(gè)人分享

    摘要:繼承原型鏈所謂言行鏈就是如果構(gòu)造函數(shù)或?qū)ο蟮脑椭赶驑?gòu)造函數(shù)或?qū)ο蟮脑驮僦赶驑?gòu)造函數(shù)或?qū)ο笠源祟?lèi)推最終的構(gòu)造函數(shù)或?qū)ο蟮脑l(xiāng)指向的原型由此形成一條鏈狀結(jié)構(gòu)被稱(chēng)之為原型鏈?zhǔn)纠a原型鏈通過(guò)構(gòu)造函數(shù)創(chuàng)建對(duì)象將的原型指向?qū)ο笸ㄟ^(guò)構(gòu)造函數(shù)創(chuàng)建對(duì)象 繼承 原型鏈 所謂言行鏈就是如果構(gòu)造函數(shù)或?qū)ο驛,A的原型指向構(gòu)造函數(shù)或?qū)ο驜,B的原型再指向構(gòu)造函數(shù)或?qū)ο驝,以此類(lèi)推,最終的構(gòu)造函數(shù)或?qū)ο蟮脑?..

    Coly 評(píng)論0 收藏0
  • 前端開(kāi)發(fā)周報(bào): CSS 布局方式與JavaScript數(shù)據(jù)結(jié)構(gòu)和算法

    摘要:如果沒(méi)有學(xué)習(xí)過(guò)計(jì)算機(jī)科學(xué)的程序員,當(dāng)我們?cè)谔幚硪恍﹩?wèn)題時(shí),比較熟悉的數(shù)據(jù)結(jié)構(gòu)就是數(shù)組,數(shù)組無(wú)疑是一個(gè)很好的選擇。 showImg(https://segmentfault.com/img/bVTSjt?w=400&h=300); 1、常見(jiàn) CSS 布局方式詳見(jiàn): 一些常見(jiàn)的 CSS 布局方式梳理,涉及 Flex 布局、Grid 布局、圣杯布局、雙飛翼布局等。http://cherryb...

    huhud 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<