任何函式本質上都是通過某個物件來呼叫的,如果沒有直接指定就是window
所有函式內部都有乙個變數this
它的值是呼叫函式的當前物件 【
解析器在呼叫函式時每次都會向函式內部傳遞乙個隱含的引數,這個隱含的引數就是this,this指向的是乙個物件, 這個物件我們稱為函式執行的上下文物件根據函式的呼叫方式不同,this會指向不同的物件
】舉個栗子哈-。-~~
function
person
(color)
this
.setcolor
=function
(color)
}
q1: person(「red」);//this是誰?
–window物件
q2: var p = new person(「yellow」);//this是誰?
–p window呼叫賦值給了p
q3: p.getcolor();//this是誰?
–p p呼叫
q4: var obj = {};
p.setcolor.call(obj,「black」);//this是誰?
–obj
q5:var test = p.setcolor;
test();//this是誰?
–直接呼叫this就是window
函式中的this
1.this是什麼?任何函式本質上都是通過某個物件來呼叫的,如果沒有直接指定就是window 所有函式內部都有乙個變數this 它的值是呼叫函式的當前物件 2.如何確定this的值?test window p.test p new test 新建立的物件 p.call obj obj functio...
函式中的this
1.函式中的this指向 普通函式中的this指向誰?window 物件,方法中的this指向 當前例項物件 定時器方法中的this指向 window 建構函式中this指向 例項物件 原型物件中的this指向 例項物件 先來看這一段 target.onclick function 50 表面上看,...
函式中的this
1 函式如果直接呼叫,函式內的this是window 2 如果函式是被new呼叫的,那麼函式內的this是new剛剛建立的新物件 3 事件裡的this是繫結這個事件的物件 4 如果函式是被物件呼叫的,那函式裡的this就是這個物件 可以通過修改this指向使用別的函式的方法 最主要是可以把陣列乙個乙...