国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

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

Cristalven / 1129人閱讀

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

this關(guān)鍵字 描述

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

this 都會(huì)指向一個(gè)對象

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

默認(rèn)綁定

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/96940.html

相關(guān)文章

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

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

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

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

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

    摘要:應(yīng)該非常小心,避免出現(xiàn)不使用命令直接調(diào)用構(gòu)造函數(shù)的情況。上面代碼表示,使用屬性,確定實(shí)例對象的構(gòu)造函數(shù)是,而不是。當(dāng)然,從繼承鏈來看,只有一個(gè)父類,但是由于在的實(shí)例上,同時(shí)執(zhí)行和的構(gòu)造函數(shù),所以它同時(shí)繼承了這兩個(gè)類的方法。 基本概念 類和實(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)建了一個(gè)對象,并為它添加了三個(gè)屬性。 JavaScript之面向?qū)ο罂偨Y(jié) 前言:在ECMAScript中是沒有類的概念的,所以它的對象與基于類的語言中的對象不同。ECMA-262把對象總結(jié)為:無序?qū)傩缘募希鋵傩园局怠ο蠡蛘吆瘮?shù)。 一、理解對象 var person...

    taowen 評論0 收藏0

發(fā)表評論

0條評論

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