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

資訊專欄INFORMATION COLUMN

JS學習(this關鍵字)

Java_oldboy / 1088人閱讀

摘要:關鍵字關鍵字是什么關鍵字是中最復雜的機制之一。它是一個很特別的關鍵字,被定義在所有函數(shù)的作用域中。可以把這條規(guī)則看作是無法應用其他規(guī)則時的默認規(guī)則。

this關鍵字 this關鍵字是什么

this關鍵字是JavaScript中最復雜的機制之一。它是一個很特別的關鍵字,被定義在所有函數(shù)的作用域中。但是即使是非常有經驗的JavaScript開發(fā)者也很難說清它到底指向什么。
1.this被定義在所有函數(shù)的作用域中
2.this指向哪個對象不取決于this被定義在哪里,而是取決于調用的位置

//定義一個全局變量
var v = 10;
//this經常被定義在函數(shù)的作用域中
function fn(){
    //this 總是要返回一個對象
    console .log(this . v);
}
fn();
綁定規(guī)則 默認綁定

在一個函數(shù)體中使用this,當該函數(shù)被獨立調用。可以把這條規(guī)則看作是無法應用其他規(guī)則時的默認規(guī)則。

function foo(){
   console .log(this .a);
}
var a=2;
foo();//2
隱式綁定

隱式綁定的規(guī)則需要考慮的是調用位置是否有上下文對象,或者說是否被某個對象擁有或者包含。

function foo(){
    console .log(this.a);
}
var obj = {
  a:2,
  foo:foo
};
obj.foo();//2
隱式綁定丟失

隱式綁定丟失是最常見的this綁定問題,指的就是被隱式綁定的函數(shù)會丟失綁定對象,也就是說它會應用默認綁定,從而把this綁定到全局對象。

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

顯示綁定就是明確在調用時,this所綁定的對象。JavaScript中提供了apply()方法和call()方法實現(xiàn),這兩個方法的第一個參數(shù)接收是一個對象,會把這個對象綁定到this,接著在調用函數(shù)時指定這個this

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

1.創(chuàng)建(或者說構造)一個全新的對象
2.這個新對象會綁定到函數(shù)調用的this
3.如果函數(shù)沒有返回其他對象,那么new表達式中的函數(shù)調用會自動返回這個新對象。

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

var hero2 = new Hero("xxx");

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

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/96959.html

相關文章

  • 學習js中的'this'鍵字

      在JavaScript中‘this’關鍵字是一個非常重要的概念,我們雖然知道它重要,但它也十分的晦澀難懂,也給我們學習造成不小的困擾。  什么是'this'關鍵字  'this'關鍵字是為每個執(zhí)行上下文(每個函數(shù))創(chuàng)建的一個特殊變量;所以一般來說,在使用'this'關鍵字的函數(shù)中,'this'永遠是取其所有者的值。總結一句話是該函...

    3403771864 評論0 收藏0
  • 深入學習js的面向對象

    摘要:字符串也可以是一個對象日期是一個對象數(shù)學和正則表達式也是對象數(shù)組是一個對象甚至函數(shù)也可以是對象一般的語言,都是利用類來創(chuàng)建對象,完成面向對象的過程。 在之前的一篇文章的末尾我提到了JavaScript的對象創(chuàng)建方法,可以利用函數(shù),內置對象和this等關鍵詞實現(xiàn)對象的創(chuàng)建。但是很遺憾,我最先接觸的面向對象的編程語言是java,因而對于這些實現(xiàn)面向對象的方法并非自己的首選。下面是那篇文章:...

    loostudy 評論0 收藏0
  • JavaScript函數(shù)學習筆記

    摘要:在中通過關鍵字方式調用的函數(shù)都被認為是構造函數(shù)。這個新創(chuàng)建的對象的被指向到構造函數(shù)的。上的方法不起效果當然你要是這樣的形式指定了返回的內容,它自然會原樣返回啦工廠模型為了不使用關鍵字,構造函數(shù)必須顯式的返回一個值。 個人博客原址 函數(shù) 函數(shù)式一塊javascript代碼,定義一次,可以被多次調用與執(zhí)行,JS中的函數(shù)也是對象,所以JS函數(shù)可以像其他對象那樣操作,和傳遞,所以也稱函數(shù)對象函...

    wua_wua2012 評論0 收藏0
  • ES6,你不得不學!

    摘要:但是,的本質仍然是函數(shù),是構造函數(shù)的另外一種寫法。報錯原生構造函數(shù)的繼承對于一些原生的構造函數(shù),比如,,,等,在是無法通過方法實現(xiàn)原生函數(shù)的內部屬性,原生函數(shù)內部的無法綁定,內部屬性獲得不了。 在沒有學習 ES6 之前,學習 React,真的是一件非常痛苦的事情。即使之前你對 ES5 有著很好的基礎,包括閉包、函數(shù)、原型鏈和繼承,但是 React 中已經普遍使用 ES6 的語法,包括 ...

    CKJOKER 評論0 收藏0
  • ES6學習筆記之箭頭函數(shù)

    摘要:特性介紹箭頭函數(shù)是新增的特性之一,它為這門語言提供了一種全新的書寫函數(shù)的語法。用生成的函數(shù)會定義一個自己的,而箭頭函數(shù)沒有自己的,而是會和上一層的作用域共享。 本文同步自我得博客:http://www.joeray61.com JS中的箭頭 箭頭在JS里并不算是個新鮮的玩意兒,一直以來,JS都支持-->這樣的箭頭。 很早的時候有些瀏覽器還不支持JS,當時的人們?yōu)榱思嫒葸@些瀏覽器,需要這...

    Vultr 評論0 收藏0

發(fā)表評論

0條評論

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