JavaScript執行上下文 1.this指向 1).直接調用函數,this指向全局對象 2).在函數外,this指向全局對象 3).通過對象調用或new一個函數,this指向調用的對象或新對象 2.使用new關鍵字生成一個對象的過程: 1).確定所有形參值以及特殊變數arguments 2).確 ...
JavaScript執行上下文
1.this指向
1).直接調用函數,this指向全局對象
2).在函數外,this指向全局對象
3).通過對象調用或new一個函數,this指向調用的對象或新對象
2.使用new關鍵字生成一個對象的過程:
1).確定所有形參值以及特殊變數arguments
2).確定函數中通過var聲明的變數,將它們的值設置為undefined。若1)步驟中形參中已有重名的變數名稱,則直接忽略2)步驟,重名變數的值還是1)步驟中的值
3).確定函數中通過字面量聲明的函數,將它們的值設置為指向函數對象。若1)步驟中形參已有重名的變數名稱,則3)步驟中的函數字面量聲明將會覆蓋掉1)步驟中的重名變數的值
例題:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <script> function A(a, b) { console.log(a, b);//a的值是形參a的值,b的值是下麵函數b字面量的值 var b = 123; function b() {} var a = function () {} console.log(a, b);//a的值是上面變數a的值,b的值是上面變數b的值 } A(1, 2); </script> </body> </html>index.html
結果展示: