this+分号问题

created on 21/03/04

  1. 如何确定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分号问题

  1. js一条语句的后面可以不加分号

  2. 在以下2种情况需要加分号(在行首加分号)

    • 小括号开头的前一条语句
    • 中括号开头的前一条语句
    var a = 3
    ;(function(){
    
    })()
    var b = 4
    ;[1,3].forEach(function(){
        
    })
    
posted @ 2021-07-01 13:36  STRIVE-PHY  阅读(36)  评论(0)    收藏  举报