关于this的相关面试题1.const object={ message:"hello world", getMessage(){ const message="Hello Earth"; return this.message; }}console.log(object.getMessage());//问:输出的是 ?//答:hello world//因为object.getMessage()是方法调用,所以this是指向的object2.function pet(name){ this.name=name; this.getName=()=>this.name;}const cat=new pet("Fluffy");console.log(cat.getName()) //输出是?Fluffyconst{getName}=cat;console.log(getName()) //输出是?Fluffy//当一个函数被调用作为构造函数,该构造函数内等于所构造的对象//this.name=name相当于构造函数在的表达式在构造name对象上创建属性//而this.getName=()=>this.name在构造函数创建一个方法,//而且他是一个箭头函数,所以this还是构造函数Pet3.const object={ message:"hello world", logMessage(){ console.log(this.message); //输出是?undefined }}setTimeout(object.logMessage,1000)//延迟1秒后//尽管setTimeout()函数将obgect.logMessage()用作回调函数,//但它仍是作为常规函数,而不是作为函数调用。//在常规函数调用中,this作为全局对象的,可以说是指向window。//那没有声明全局message参数,所以也就说明为什么输出的是undefined。