声明一个普通函数:
function foo() {
console.log('foo is executing');
}
// 如果不显示的声明函数的调用者,为什么缺省情况下调用者会是window,有什么出处么。
foo();
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
在浏览器中,你的全局变量是
window
对象的属性,函数是window
对象的方法这个JS引擎实现的规则喽~~
(Execution Contexts)
函数中的this就是函数的调用者
如果是通过对象的方法调用,即obj.method(params)这种形式的调用,this会被绑定成这个obj。
如果只是一个独立函数的调用,如你的例子,分为两种:
特殊情况就是使用call, apply, bind函数来强制改变this的绑定。