javascript的this指向問題
例子1:
var obj = {
name : 'aaa',
getName : function () {
console.log(this.name);
}
}
console.log(window.name);
var fn1 = obj.getName;
obj.getName();//aaa
var fn2 = obj.getName();//aaa
fn1();//空 (注意: window 有一個自帶的 name屬性. fn1(), 的this指向window)
fn2();//報錯
這題考到了 this
的指向, 還有一個小坑, 在 window
下, 預設有一個 name
屬性, 這題在 window
沒有給 name
定義變數, 這題 fn1()
的時候 this
指向的 window
是一個空, 要注意
例子2:
var name = '222';
var a = {
name : '111',
say : function () {
console.log(this.name);
}
}
var fun = a.say;
fun();//222 (fun(),this指向window)
a.say();//111 (a.say(),this指向a)
var b = {
name : '333',
say : function (fun) {
fun();
}
}
b.say(a.say);//222 (傳參fun, fun = a.say, 內部執行fun(), 和上面的結果是一樣的)
b.say = a.say;// (b.say = a.say, b內部say : function () {console.log(this.name);})
b.say();//333 (b.say(),this指向b)
例子3:
var a = 5;
function Test() {
a = 0;
console.log(a);
console.log(this.a);
var a;
console.log(a);
}
Test();
// 0
// 5 (Test(),this指向window)
// 0
var test = new Test(); (new的時候會建立一個this = {})
// 0
// undefined (Test建構函式中沒有this.a, 所以為undefined)
// 0
總結: 誰呼叫的這個方法,this
就指向誰
相關文章
- JavaScript中this指向問題JavaScript
- 關於javascript的this指向問題JavaScript
- this指向問題
- js中this的指向問題JS
- 關於this指向的問題
- class 類 this指向的問題
- 一個有趣的this指向問題
- JavaScript的this的指向JavaScript
- JavaScript 內的 this 指向JavaScript
- JavaScript內的this指向JavaScript
- JavaScript 中 This 的指向JavaScript
- javascript:this指向JavaScript
- 函式內部This的指向問題函式
- 淺談 js 中的 this 指向問題JS
- JavaScript中this指向以及改變this指向JavaScript
- JavaScript_this指向JavaScript
- 有關this指標指向問題指標
- JavaScript中this指向的總結JavaScript
- 關於setInterval和setTImeout中的this指向問題
- JS中的this指向問題(詳細版plus)JS
- 看懂js中this關鍵字的指向問題JS
- js中this指向的問題與聯絡深入探究JS
- 全面解析JavaScript中this指向JavaScript
- 【JavaScript】聊聊js中關於this的指向JavaScriptJS
- JavaScript 的 this 指向和繫結詳解JavaScript
- 6. JavaScript this指向相關JavaScript
- 也談箭頭函式的 this 指向問題及相關函式
- 面試官問:JS的this指向面試JS
- 教辨別this指向問題 包括箭頭函式函式
- JavaScript 你真的瞭解this指向嗎JavaScript
- 【JavaScript】徹底明白this在函式中的指向JavaScript函式
- JavaScript中有關new的問題JavaScript
- javascript中的各種問題JavaScript
- javascript 函式作用域中的關鍵字this的指向JavaScript函式
- Ubuntu無法解析域名DNS指向127.0.0.53問題處理UbuntuDNS
- setTimeout中的this指向問題和箭頭函式結合的區別函式
- 結合執行棧、執行上下文,理解this的指向問題
- 10個最常見的JavaScript問題JavaScript