lang="en">
charset="utf-8">
深入理解thistitle>
head>
//它代表函式執行時,自動生成的乙個內部物件,只能在函式內部使用。
//隨著函式使用場合的不同,this的值會發生變化。
//但是有乙個總的原則,那就是this指的是,呼叫函式的那個物件。
//demo1
function
demo1
() //呼叫
demo1();
//解析:
//就是this指的是,呼叫函式的那個物件。
//demo1函式是被window呼叫的,所以this就指向了window
輸出undefined因為this指向了window,
//在window下沒有test1屬性(函式內部可以訪問函式外部變數,反之不可(閉包除外));
//呼叫方式 demo1();等價於 window.demo1();
//demo2
//字面向量建立函式
var parent=
}//呼叫
// parent.fun();
//解析
//就是this指的是,呼叫函式的那個物件。(既呼叫fun函式的物件)
//上面 點 呼叫方式看出 fun函式是通過parent呼叫的,所以this指向了parent
//在parent也就是this下面存在變數test2變數,所以將其輸出
//demo3
var demo3=}}
//呼叫
demo3.fun.func();
//解析
//就是this指的是,呼叫函式的那個物件。(既呼叫func函式的物件)
//上面 點 呼叫方式看出 func函式是通過 demo3.fun呼叫的,所以this指向了fun
//在fun也就是this下面存在變數de變數,所以將其輸出
//呼叫方式 demo3.fun.func();等價於 window.demo3.fun.func();
//demo5
var demo5=}}
//呼叫
var exe=demo5.fun.func;
exe();
//解析
//demo5與demo4,不同之處在於呼叫函式的方式
//demo5呼叫方式分為兩步
//var exe=demo5.fun.func; 將func函式的執行權利賦值給了exe變數,
//注意 因為var exe 相當與 window.exe exe處在window的作用域下面
//通過exe來執行,this的指向就變成了window
//呼叫方式 exe();等價於 window.exe();
//demo6
//建構函式
function
demo6
() //呼叫
var demo6faild=new demo6();
console.log(demo6faild.test6);//zyn
//解析
//因為用了new關鍵字就是建立乙個物件例項
//並且將物件例項賦值給demo6faild,所以this指向了demo6faild(相當於demo6)
//在demo6和demo6faild也就是this下面存在變數test6變數,所以輸出zyn
//demo7
function
demo7
(); }
var de6=new demo7();
console.log(de6.test7);//undefined
function
demo7
(); }
console.log(de6.test7);//undefined
function
demo7
() console.log(de6.test7);//zyn
function
demo7
() console.log(de6.test7);//zyn
function
demo7
() console.log(de6.test7);//zyn
//解析
//如果返回值是乙個物件,那麼this指向的就是那個返回的物件,
// 如果返回值不是乙個物件那麼this還是指向函式的例項。
script>
body>
html>
js中this的指向
this的指向在函式定義的時候是確定不了的,只有函式執行的時候才能確定this到底指向誰,實際上this的最終指向的是那個呼叫它的物件 functiona a 按照我們上面說的this最終指向的是呼叫它的物件,這裡的函式a實際是被window物件所點出來的,下面的 就可以證明。var o o.fn ...
js中的this指向
首先必須要說的是,this的指向在函式定義的時候是確定不了的,只有函式執行的時候才能確定this到底指向誰,實際上this的最終指向的是那個呼叫它的物件 這句話有些問題,後面會解釋為什麼會有問題,雖然網上大部分的文章都是這樣說的,雖然在很多情況下那樣去理解不會出什麼問題,但是實際上那樣理解是不準確的...
js中this的指向
this關鍵字代表當前正在執行的方法的物件,如果沒有當前方法,則是指全域性變數。就是說this代表呼叫該方法的物件的引用。直接列印 console.log this window function宣告函式 function bar bar window function宣告函式賦給變數 varbar...