您的位置:首页 > Web前端 > JavaScript

JS(十七)this

2018-03-19 23:45 417 查看

写在最前面

this

函数预编译过程 this –> window

全局作用域里 this –> window

call/apply 可以改变函数运行时this指向

obj.function();function()里面的this指向obj

函数预编译过程 this –> window

function test(c){
var a = 123;
function b(){};
}

test();

AO{
arguments:[1];
this : window;
c : 1,
a : 123;
b : function(){};
}

new test();


obj.function();function()里面的this指向obj

谁调用this 就会指向这个函数

var name = "222";
var a = {
name : "111",
say : function(){
console.log(this.name)
}
}

var fun = a.say;
fun();//在全局下执行 打印222
a.say();//在a调用say this指向a 打印111

var b = {
name : "333",
say : function(fun){
fun();
}
}

b.say(a.say);//因为还是没有人调用fun(),所以还是在全局下调用的fun();所以打印的是222
b.say = a.say;
b.say();//可以看到的是b.say的属性值换成了a.say也就是fun(),打印的是333
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  JavaScript this