this+分号问题
created on 21/03/04
-
如何确定this的值
全局上下文:在全局作用域中,this指向全局对象(在浏览器中是window对象)。
函数上下文:在函数内部,this的指向取决于函数被调用的方式:
在普通函数中,this的指向取决于函数的调用方式。如果函数是作为全局函数调用,this指向全局对象;如果函数作为对象的方法调用,this指向调用该方法的对象。
在箭头函数中,this的指向由箭头函数定义时的外部作用域决定,而不是调用时的上下文。
构造函数上下文:在构造函数中,this指向正在创建的实例对象。
DOM事件处理程序:在DOM事件处理程序中,this通常指向触发事件的DOM元素。
- test():window
- p.test():p
- new test():新创建的对象
- p.call(obj):obj
function Person(color){
console.log(this);
this.color = color;
this.getColor = function(){
console.log(this);
return this.color;
};
this.setColor = function(color){
console.log(color);
this.color = color;
};
}
Person("red"); //window
var p = new Person("yello"); //p
p.getColor(); //p
var obj = {};
p.setColor.call(obj, "black"); //obj
var test = p.setColor;
test(); //window
210305分号问题
-
js一条语句的后面可以不加分号
-
在以下2种情况需要加分号(在行首加分号)
- 小括号开头的前一条语句
- 中括号开头的前一条语句
var a = 3 ;(function(){ })() var b = 4 ;[1,3].forEach(function(){ })

浙公网安备 33010602011771号