摘要:情況如果一個函數中有,這個函數有被上一級的對象所調用,那么指向的就是上一級的對象。
函數中 this -->普通函數中this 不是看它定義時候所處的對象 誰調用它this就是誰
普通函數中 this 是什么?
任何函數本質上都是通過某個對象來調用的,如果沒有直接指定就是window
所有函數內部都有一個變量this
它的值是調用函數的當前對象
如何確定this的值?
test(): window
p.test(): p
new test(): 新創建的對象(準確說不是p 但p最后是指向這個對象的) var p = new test()
p.call(obj): obj
//
情況1:如果一個函數中有this,但是它沒有被上一級的對象所調用,那么this指向的就是window, 這里需要說明的是在js的嚴格版中this指向的不是window,但是我們這里不探討嚴格版的問題,你想了解可以自行上網查找。
情況2:如果一個函數中有this,這個函數有被上一級的對象所調用,那么this指向的就是上一級的對象。
情況3:如果一個函數中有this,這個函數中包含多個對象,盡管這個函數是被最外層的對象所調用,this指向的也只是它上一級的對象
var o = {
a:10, b:{ // a:12, fn:function(){ console.log(this.a); //undefined } }
}
o.b.fn();
盡管對象b中沒有屬性a,這個this指向的也是對象b,因為this只會指向它的上一級對象,不管這個對象中有沒有this要的東西。
//
var o = {
a:10, b:{ a:12, fn:function(){ console.log(this.a); //undefined console.log(this); //window } }
}
var j = o.b.fn;
j();
**this永遠指向的是最后調用它的對象,也就是看它執行的時候是誰調用的,例子中雖然函數fn是被對象b所引用,
但是在將fn賦值給變量j的時候并沒有執行所以最終指向的是window**
箭頭函數的特點:
1、簡潔 2、箭頭函數沒有自己的this,箭頭函數的this不是調用的時候決定的,而是在定義的時候處在的對象就是它的this
3、擴展理解: 箭頭函數的this看外層的是否有函數,
如果有,外層函數的this就是內部箭頭函數的this,( 如果它的外層也是箭頭函數,則繼續向外找) 如果沒有,則this是window。
作用: 定義匿名函數
基本語法:
沒有參數: () => console.log("xxxx")
一個參數: i => i+2
大于一個參數: (i,j) => i+j
函數體不用大括號: 默認返回結果
函數體如果有多個語句, 需要用{}包圍,若有需要返回的內容,需要手動返回
使用場景: 多用來定義回調函數
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/101579.html
摘要:類型聲明中的函數定義,需要聲明參數和返回值的類型。其中隱藏有一個點類型推斷,箭頭函數沒有聲明返回值類型,這里編譯器不會報錯,因為它可以推斷出返回值類型。 引言 TypeScript中的函數和JavaScript中的函數,和其他特性相比,是相差不大的。 這里會補充一點進階知識。 函數相關的知識點 下面列舉一些TypeScript中函數相關的知識點。 類型聲明 TypeScript中的函...
摘要:例如通過,調用時強制把它的綁定到上。箭頭函數問題箭頭函數體內的對象就是定義時所在的對象,而不是使用時所在的對象,固定不變。 剛入門javascript,關于this的學習,花了自己挺多的時間,做了比較多的功課,看了一篇又一篇的文章,也看了一些書籍,今天就結合看的那些東西總結下自己所學到的東西,方便留著以后回看,進一步的學習,這篇文章會不斷的更新,不斷的更新自己的想法,現在還是一個入門不...
摘要:感覺對我這種沒實習沒工作的新手,雖然一些高級的功能暫時用不上,但是一些基礎的知識還是為平時的開發提供了巨大的便利。學習告一段落,現在結合平時的開發,總結一些常用的知識。日常開發中,塊級作用域中使用的變量,盡量使用或者聲明。使用時,進行合并。 很早之前就學過TypeScript和ES6,后來做項目的時候零零散散用了些。這幾天又系統地把ES6的知識看了一遍。感覺對我這種沒實習沒工作的新手,...
摘要:的精髓在于,用維護狀態傳遞狀態的方式使得回調函數能夠及時調用,比傳遞要簡單靈活的其他方法用于指定發生錯誤時的回調函數,等同于部分和的區別在發生異常,在中捕獲不到能夠捕獲異常。 ES6是個啥 ECMAScript是國際通過的標準化腳本語言JavaScript由ES,BOM,DOM組成ES是JavaScript的語言規范,同時JavaScript是ES的實現和擴展6就是JavaScript...
閱讀 684·2021-11-25 09:43
閱讀 2953·2021-11-24 10:20
閱讀 1002·2021-10-27 14:18
閱讀 1076·2021-09-08 09:36
閱讀 3382·2021-07-29 14:49
閱讀 1783·2019-08-30 14:07
閱讀 2937·2019-08-29 16:52
閱讀 3049·2019-08-29 13:12