this 相關 2

2022-11-24 20:41:18 字數 1681 閱讀 3809

this 的指向與所在方法的呼叫位置有關,而與方法的宣告位置無關

1

var obj =6}

7var obj1 =

11 obj.getval(); //

112 obj1.getval(); //

2

在瀏覽器中,呼叫方法沒有明確物件的,this指向window

1

var obj =6}

7var val = 3;

8var getval =obj.getval;

9 getval(); //

在node環境是undefined(node全域性物件是global) 在瀏覽器中是3(瀏覽器全域性物件是window)

1  1 var obj =

6 6}

7 7 var obj1 =

13 13

14 14}

15 15 var val = 34;

16 16 obj1.getval(); //

實際上是在這呼叫的 (在node環境是undefined(node全域性物件是global) 在瀏覽器中是34(瀏覽器全域性物件是window))

在瀏覽器中settimeout,setinterval和匿名函式執行的時的當前物件是全域性物件window

1

var that = this;2

3 (function

() )();

67 settimeout(function

() , 0);

如果js中定義的全域性物件在瀏覽器中是執行window,會加入window中的一個同名屬性,但是在node中就一定加到global中了嗎,並不是,在node 中是有個global全域性作用域,但是除非你指名加到global上,global上面才會有,否則不會有,node的多有檔案也不會訪問到這個屬性,node其實是有檔案作用域的,把變數定義在檔案中,其他檔案是不會共享這個變數的。這是和瀏覽器的window是不同的哦

var obj =

}var obj1 =

var val = 34;

//呼叫位置

obj.getval.call(); //

node下是undefined //瀏覽器下是34 不傳值預設是全域性物件

obj.getval.call(obj1); //

2 node下是undefined //瀏覽器下是34 不傳值預設是全域性物件

2obj.getval.bind(this)(); //

node下是undefined //瀏覽器下是34

obj.getval.bind(obj1)(); //

2

嚴格模式下  this不會被賦值到window下  而是undefined

1 (function

() 7

8 console.log(this); //

undefined

9 getval.call(this); //

undefined

10 getval.call(null); //

null

11 getval.call(undefined); //

undefined

12 })();

2021 2 2

1 分別說明 split slice splice join 方法的作用和引數,並舉例 split 可以使用一個字串切割另一個字串,返回值是陣列 var a 0123456 var b a.split 3 b 0 1 2 slice 可以從陣列中擷取一部分 var a 1,2,3,4,5,6 var...

計算a 2 b 2 c 2

計算a 2 b 2 c 2 def calc number sum 0 for n in number sum sum n n return sum print calc 1,2,3 計算階乘n def jiecheng num int input 請輸入一個數字 n 1 檢視數字是負數,0或正數 ...

2 2 字串String

字串或串 string 是由數字 字母 下劃線組成的一串字元。它是程式語言中表示文字的資料型別。python的字串列表有2種取值順序 如果你要實現從字串中獲取一段子字串的話,可以使用變數 頭下標 尾下標 就可以擷取相應的字串,其中下標是從 0 開始算起,可以是正數或負數,下標可以為空表示取到頭或尾。...