js this是什么?
1、this:指当前执行上下文的一个属性,在非严格模式下,总是指向一个对象,在严格模式下可以是任意值。
可以理解为:this 就是你call 一个函数时,传入的第一个参数,即谁调用了函数,this就指向谁。
2、函数调用转换:
func(p1, p2) 等价于 func.call(undefined, p1, p2) obj.child.method(p1, p2) 等价于 obj.child.method.call(obj.child, p1, p2)
3、关于箭头函数和this:箭头函数没有this,箭头函数的this即为外层作用域的this,依次往上找,直到找到this的定义为止~
4、例子
function Foo() {
getName = function () { console.log(1) };
return this;
}
Foo.getName = function () { console.log(2) };
Foo.prototype.getName = function () { console.log(3) };
var getName = function () { console.log(4) };
function getName() { console.log(5) };
//以下分别输出什么?
Foo.getName();
getName();
Foo().getName();
getName;
new Foo.getName();
new Foo().getName();
new new Foo().getName()
输出结果:
Foo.getName();//2
getName();//4
Foo().getName();//1
getName;//f(){alert(1)}
new Foo.getName();//2
new Foo().getName();//3
new new Foo().getName()//3
浙公网安备 33010602011771号