亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

JavaScript 之 面向?qū)ο?[ this關(guān)鍵字 ]

Cristalven / 1170人閱讀

摘要:關(guān)鍵字描述一般被定義在函數(shù)中使用都會指向一個對象通過調(diào)用函數(shù)的位置來判斷當(dāng)前指定的對象默認(rèn)綁定表示在函數(shù)中使用,在調(diào)用該函數(shù)時,沒有具體的指向目標(biāo),會默認(rèn)為指向全局對象示例代碼定義一個全局變量定義一個函數(shù)在函數(shù)調(diào)用時無法找到具體的對象,會指

this關(guān)鍵字 描述

this 一般被定義在函數(shù)中使用

this 都會指向一個對象

this 通過調(diào)用函數(shù)的位置來判斷當(dāng)前指定的對象

默認(rèn)綁定

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

示例代碼
/* 定義一個全局變量 */
var unm = 100;
/* 定義一個函數(shù) */
function fun() {
    console.log( this.unm );
}
/* 在函數(shù)調(diào)用時this無法找到具體的對象,會指向全局對象 */
fun();// 顯示 undefined(在瀏覽器環(huán)境中會顯示匹配的全局變量數(shù)值)
隱式綁定

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

示例代碼
/* 定義一個函數(shù) */
function fun() {
    console.log( this.name );
}

/* 定義一個對象 */
var obj = {
    name : "唐三",
    /* 該對象的方法為一個指定函數(shù) - 形成上下文關(guān)系 */
    fn : fun
}
/* 調(diào)用指定方法 */
obj.fn();// 顯示 唐三
隱式綁定的丟失

將一個指定對象中的指定方法賦值給一個全局變量,在調(diào)用全局變量時,this將從原本指向具體對象,變成指向全局對象

示例代碼
/* 定義一個函數(shù) */
function fun() {
    console.log( this.name );
}

/* 定義一個對象 */
var obj = {
    name : "唐三",
    /* 該對象的方法為一個指定函數(shù) - 形成上下文關(guān)系 */
    fn : fun
}
/* 調(diào)用指定方法 */
obj.fn();// 顯示 唐三
/* 將指定對象的方法賦值給一個變量 */
var s = obj.fn;
/* 調(diào)用變量 */
s();// 顯示 undefined
顯示綁定

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

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

示例代碼
/* 定義一個函數(shù) */
function fun() {
    console.log( this.name );
}

/* 定義一個對象 */
var obj = {
    name : "唐三",
    /* 該對象的方法為一個指定函數(shù) - 形成上下文關(guān)系 */
    fn : fun
}
/* 調(diào)用指定方法 */
obj.fn();// 顯示 唐三
/* 將指定對象的方法賦值給一個變量 */
var s = obj.fn;
/* 調(diào)用變量并明確指定this所指定的對象 */
s.apply( obj );// 顯示 唐三
new綁定

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

示例代碼
/* 定義一個構(gòu)造函數(shù) */
function Fun() {
    /* this會指向該構(gòu)造函數(shù)所創(chuàng)建的對象 */
    this.name = "唐三";
}

/* 創(chuàng)建對象 */
var obj = new Fun();
console.log( obj.name );// 顯示 唐三
被忽略的this

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

示例代碼
/* 定義函數(shù) */
function fun(){
    console.log( this.s );
}
/* 定義全局變量 */
var s = 100;
/* 使用call()方法來調(diào)用指定函數(shù) */
fun.call( null );// 顯示 undefined (在瀏覽器環(huán)境中會顯示 100 全局變量)
間接引用

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

示例代碼
/* 定義一個函數(shù) */
function fun() {
    console.log( this.s );
}
/* 定義一個全局變量 */
var s = 10;
/* 定義一個對象 */
var obj = {
    s : 20,
    fn : fun
};
/* 調(diào)用方法 */
obj.fn();// 顯示 20

/* 定義另一個對象 */
var x = {
    s : 30
};
/* 將obj對象中的方法新增到新對象中并調(diào)用 */
( x.fu = obj.fn )();// 顯示 undefined(瀏覽器環(huán)境中會顯示 10 全局變量)

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

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/96940.html

相關(guān)文章

  • JavaScript面向對象錯誤與異常與this關(guān)鍵字

    摘要:一錯誤與異常概述錯誤,指程序中的非正常運(yùn)行狀態(tài),在其它語言中稱為異常或錯誤將每個錯誤中創(chuàng)建個對象,描述包含的錯誤信息通過使用提供異常的處理語句,可以用結(jié)構(gòu)化方式捕捉發(fā)生錯誤,異常處理代碼與核心代碼實(shí)現(xiàn)分離語句語句是指中處理異常一種標(biāo)準(zhǔn)方式, JS(JavaScript)一.錯誤與異常1.概述錯誤,指程序中的非正常運(yùn)行狀態(tài),在其它語言中稱為異?;蝈e誤將每個錯誤中創(chuàng)建個Error對象,描述...

    ASCH 評論0 收藏0
  • 面向對象JavaScript

    摘要:是完全的面向?qū)ο笳Z言,它們通過類的形式組織函數(shù)和變量,使之不能脫離對象存在。而在基于原型的面向?qū)ο蠓绞街?,對象則是依靠構(gòu)造器利用原型構(gòu)造出來的。 JavaScript 函數(shù)式腳本語言特性以及其看似隨意的編寫風(fēng)格,導(dǎo)致長期以來人們對這一門語言的誤解,即認(rèn)為 JavaScript 不是一門面向?qū)ο蟮恼Z言,或者只是部分具備一些面向?qū)ο蟮奶卣?。本文將回歸面向?qū)ο蟊疽猓瑥膶φZ言感悟的角度闡述為什...

    novo 評論0 收藏0
  • 溫故知新javascript面向對象

    摘要:應(yīng)該非常小心,避免出現(xiàn)不使用命令直接調(diào)用構(gòu)造函數(shù)的情況。上面代碼表示,使用屬性,確定實(shí)例對象的構(gòu)造函數(shù)是,而不是。當(dāng)然,從繼承鏈來看,只有一個父類,但是由于在的實(shí)例上,同時執(zhí)行和的構(gòu)造函數(shù),所以它同時繼承了這兩個類的方法。 基本概念 類和實(shí)例是大多數(shù)面向?qū)ο缶幊陶Z言的基本概念 類:類是對象的類型模板 實(shí)例:實(shí)例是根據(jù)類創(chuàng)建的對象但是,JavaScript語言的對象體系,不是基于類的,...

    趙連江 評論0 收藏0
  • JS面向對象二:this/原型鏈/new原理

    摘要:情況沒有明確作用對象的情況下,通常為全局對象例如函數(shù)的回調(diào)函數(shù),它的就是全局對象。正因如此,機(jī)器可以作為這類對象的標(biāo)志,即面向?qū)ο笳Z言中類的概念。所以機(jī)器又被稱為構(gòu)造函數(shù)。原型鏈也就是繼承鏈。 JS面向?qū)ο蠖?this/原型鏈/new原理 阮一峰JavaScript教程:面向?qū)ο缶幊?阮一峰JavaScript教程:實(shí)例對象與 new 命令 阮一峰JavaScript教程:this 關(guān)...

    anRui 評論0 收藏0
  • javascript面向對象總結(jié)

    摘要:之面向?qū)ο罂偨Y(jié)前言在中是沒有類的概念的,所以它的對象與基于類的語言中的對象不同。一理解對象張三上面通過構(gòu)造函數(shù)創(chuàng)建了一個對象,并為它添加了三個屬性。 JavaScript之面向?qū)ο罂偨Y(jié) 前言:在ECMAScript中是沒有類的概念的,所以它的對象與基于類的語言中的對象不同。ECMA-262把對象總結(jié)為:無序?qū)傩缘募?,其屬性包含基本值、對象或者函?shù)。 一、理解對象 var person...

    taowen 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<