this對象

1、前言

咱們知道this對象是在函數執行時,自動生成的一個內部對象,只能在函數內部使用,就是說它只與函數的執行環境有關聯 。javascript

接下來,咱們看一下幾種常見的this用法。java


2、this用法

1. 腳本中,this初始化爲window

console.log(this); // Window
複製代碼

2. 在普通函數中,this初始化爲window

function fn() {
    console.log(this);
}
fn(); // Window
複製代碼

3. 在Object調用的函數中,this被指定爲object(誰調用就指向誰)

var obj = {
    name: 'a',
    f: function(x, y) {
        console.log(this);
    }
};
obj.f(1, 2); // {name: "a", f: ƒ}
var ff = obj.f;
ff(); // Window // 這裏至關於window.ff();
複製代碼

4. 在call、apply中,this能夠被指定,指定爲第一參數

var obj = {
    name: 'a',
    f: function(x, y) {
        console.log(this);
    }
};
var ff = obj.f;
ff.call(obj, 1, 2); // {name: "a", f: ƒ}
var arr = [];
ff.call(arr, 1, 2); // []
ff.apply(obj, [1, 2]); // {name: "a", f: ƒ}
複製代碼

5. 在new的構造函數中,this被指向正在建立的對象

function F() {
    console.log(this);
}
var obj2 = new F(); // F()
複製代碼

3、本節思惟導圖

源碼地址: github.com/Knight174/M…
相關文章
相關標籤/搜索