this 作用域

const object = {
  message: 'Hello, World!',

  getMessage() {
    const message = 'Hello, Earth!';
    return this.message;
  }
};

console.log(object.getMessage()); // 'Hello, World!' 
//this 表示 object。

箭头函数内部的this值等于外部作用域的this值。

setTimeout()种调用常规函数,this等于全局对象,即浏览器环境中的 window。

在常规函数调用期间的this值等于全局对象。

调用logMessage函数,让它打印 "Hello, World!"

function logMessage() {
  console.log(this.message); // logs 'Hello, World!'
}

// Using func.call() method
logMessage.call(object);

// Using func.apply() method
logMessage.apply(object);

// Creating a bound function
const boundLogMessage = logMessage.bind(object);
boundLogMessage();

arguments[0]()是arguments对象上的回调的方法调用,所以回调内部的参数等于arguments