//例如:a 在 飯店 吃 餃子
//執行主體就是a 上下文就是飯店 吃餃子就是行為
function 吃餃子()
a.吃餃子()//輸出this ---> 指a
(function() )
//this是誰 和函式在哪定義的和在哪執行的沒有任何關係,就是指執行主體
複製**
1、函式執行,首先看函式前面是否有'.',有的話前面是誰,this就是誰,沒有的話this指window
function
fn() ;
var obj = ;
fn()//this--->指window
var obj = ;
obj.fn()//this指obj
function
sum()
sum();
var oo =
}oo.sum();
複製**
2、自執行函式中的this永遠是指window
3、給元素的的某乙個事件繫結方法,當事件觸發的時候,執行對應的方法,this是指當前的元素
function
fn()
document.getelementbyid('#div1').onclick = fn;
//fn中的this --->指 '#div1'
document.getelementbyid('#div1').onclick = function()
複製**
var num = 20;
var obj =
})(num)
//此處傳參 是全域性變數的num的值20 賦值給了自執行函式的形參 而不是obj的30 如果傳入obj下的30 需要寫成obj.num
}var fn = obj.fn;
fn();//輸出65
obj.fn();//85
console.log(window.num);//240
console.log(obj.num);//120
複製**
JS this指向問題
首先,明確一點,沒有巢狀時,函式中的this指向它的呼叫者.巢狀函式,內部的函式的this指向它的呼叫者 window 不是外層函式 var a fn a.f window其次,函式既可以在當前執行環境中 this指向物件 又可以在全域性環境中 this指向window var obj bar 1 ...
JS this指向問題(2)
var color orange window.color red var person function saycolor person.saycolor saycolor person.saycolor.call saycolor undefined person.saycolor.call s...
關於js this指向的理解
var obj add1 function a var f v v this.count return f.call b,a add2 function a var f function v return f.call b,a console.log obj.add 1 2 console.log ...