生下來,活下去,如此簡單如此難!人,一生都在忙着,累着,奔波着,不論多苦,事,仍是沒作完。人,一生都在省着,攢着,儲蓄着,不論多摳,錢,仍是沒存夠。
數組
1、默認模式和嚴格模式下:bash
function fun(x, y) {
console.log(this,x,y);
}
fun(10,20);// 此時打印的this是window 複製代碼
function fun1(x, y){
"use strict"
console.log(this, x, y);
}
fun1(39, 13); // 此時打印的this指向是undefined複製代碼
var Obj = {
name: "張三"
}
function fun2(x, y) {
console.log(this, x, y);
}
fun2(20,30);// 若是這樣直接調用的話,this指向就是window
fun2.call(Obj, 30, 50); //若是使用call改變其this指向的話, 這時候this就是指向Obj了複製代碼
var Obj = {
name: "張三"
}
function fun3(x, y) {
console.log(this, x, y);
}
fun3(20,30);// 若是這樣直接調用的話,this指向就是window
fun3.apply(Obj, [100,200]); //若是使用apply改變其this指向的話, 這時候this就是指向Obj了,後面的參數時用數組封裝起來的複製代碼
var Obj = {
name: "張三"
}
function fun4(x, y) {
console.log(this, x, y);
}
// 使用bind會複製一個函數,而後改變其this指向,並返回一個新的函數
var ss = fun4.bind(Obj);
// 這個時候再調用傳入參數
ss(10, 20);複製代碼