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

資訊專欄INFORMATION COLUMN

JavaScript 的 this 和 apply call bind

lolomaco / 1220人閱讀

摘要:是誰,在函數運行時才能確定,誰調用了函數誰就是,就是調用者例如是是調用了函數,所以函數中的就是調用者是同理什么是全局對象,瀏覽器的全局對象是,中全局對象是在瀏覽器中直接調用一個函數,那么就是調用者是例如是的作用,中函數是一個對象,所以函數可

this 是誰

1,this 在函數運行時才能確定
2,誰調用了函數誰就是 this
3,this 就是調用者

例如

var o1 = {
  name: "o1",
}
var o2 = {
  name: "o2",
}
o1.hello = function() {
  console.log("this 是,", this)
}
o2.hello = function() {
  console.log("this 是, ", this)
}
o1.hello()
o2.hello() 

o1 調用了 hello 函數,所以 hello 函數中的 this 就是 o1(調用者是 o1
o2 同理

什么是全局對象

1,瀏覽器的全局對象是 window
2,node.js 中全局對象是 global

在瀏覽器中直接調用一個函數,那么 this 就是 window (調用者是 window

例如

var hello = function() {
  console.log("this 是,", this)
}
hello()

apply call bind 的作用

1,JavaScript 中函數是一個對象,所以函數可以有方法
2,apply call bind 都是函數的方法,用來給函數指定 this

apply

1,apply 接受兩個參數
2,第一個參數為函數里的 this
3,第二個參數為要傳給函數的參數列表,(這個參數列表可以當做是個數組來理解,實際上不是數組
4,apply 會把這個參數列表拆成一個個的參數傳給函數

例如

console.log.apply(console, arguments)

這行代碼把 log 函數的 this 指定為 cosnole.log

var arguments = [1, 2, 3]
console.log.apply(console, arguments)
// 相當于 
console.log(1, 2, 3)

call

call 和 apply 類似,區別是 call 只能把參數一個個傳入

例如

console.log.call(console, 1, 2, 3)
// 相當于 
console.log(1, 2, 3)

bind

1,bind 只能返回一個函數讓你調用
2,bind 的第一個參數為函數里的 this
3,bind 還可以有額外的參數

例如

var log = console.log.bind(console, "這里是額外參數")
log("hello")

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

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

相關文章

  • 理解 JavaScript call()/apply()/bind()

    摘要:理解文章中已經比較全面的分析了在中的指向問題,用一句話來總結就是的指向一定是在執行時決定的,指向被調用函數的對象。與和直接執行原函數不同的是,返回的是一個新函數。這個新函數包裹了原函數,并且綁定了的指向為傳入的。 理解 JavaScript this 文章中已經比較全面的分析了 this 在 JavaScript 中的指向問題,用一句話來總結就是:this 的指向一定是在執行時決定的,...

    duan199226 評論0 收藏0
  • JavaScript函數callapplybind

    摘要:它們有明確的和成員函數的定義,只有的實例才能調用這個的成員函數。用和調用函數里用和來指定函數調用的,即指針的指向。同樣,對于一個后的函數使用或者,也無法改變它的執行,原理和上面是一樣的。 函數里的this指針 要理解call,apply和bind,那得先知道JavaScript里的this指針。JavaScript里任何函數的執行都有一個上下文(context),也就是JavaScri...

    alighters 評論0 收藏0
  • JS中callapplybind方法詳解

    摘要:不能應用下的等方法。首先我們可以通過給目標函數指定作用域來簡單實現方法保存,即調用方法的目標函數考慮到函數柯里化的情況,我們可以構建一個更加健壯的這次的方法可以綁定對象,也支持在綁定的時候傳參。原因是,在中,多次是無效的。 bind 是返回對應函數,便于稍后調用;apply 、call 則是立即調用 。 apply、call 在 javascript 中,call 和 apply 都是...

    zombieda 評論0 收藏0
  • JS基礎篇--callapplybind方法詳解

    摘要:首先我們可以通過給目標函數指定作用域來簡單實現方法保存,即調用方法的目標函數考慮到函數柯里化的情況,我們可以構建一個更加健壯的這次的方法可以綁定對象,也支持在綁定的時候傳參。原因是,在中,多次是無效的。而則會立即執行函數。 bind 是返回對應函數,便于稍后調用;apply 、call 則是立即調用 。 apply、call 在 javascript 中,call 和 apply 都是...

    lastSeries 評論0 收藏0
  • javascript關于this 以及this顯示設置(applycallbind)

    摘要:如果連續呢結果會是什么結果還是第一個原因是,在中,多次是無效的。更深層次的原因,的實現,相當于使用函數在內部包了一個,第二次相當于再包住第一次故第二次以后的是無法生效的。 this 1.其實js中的this沒那么難理解,當找不到this時記住一句話:誰調我,我就指誰!new 誰指誰 function text1(){ console.log(this); //指wind...

    LiveVideoStack 評論0 收藏0
  • call,apply and bind in JavaScript

    摘要:文章盡量使用大量實例進行講解,它們的使用場景。在嚴格模式下,函數被調用后,里面的默認是后面通過調用函數上的和方法,該變指向,函數里面的指向。利用,可以傳入外層的上下文。同樣適用的還有,里面的對象,它也是一種類數組對象。 call,apply and bind in JavaScript 在ECMAScript中,每個函數都包含兩個繼承而來的方法:apply() 和 call(),這兩個...

    JohnLui 評論0 收藏0

發表評論

0條評論

lolomaco

|高級講師

TA的文章

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