JavaScript 中 `this` 指向 `undefined` 的情况
当在没有显式指定 'this' 的情况下调用函数时,'this' 的值会被设置为全局对象(在浏览器中为 'window',在 Node.js 中为 'global')。如果使用严格模式,则 'this' 的值将为 'undefined'。
下面是一个示例:
function example() {
console.log(this);
}
example(); // 输出为全局对象(window 或 global)
'use strict';
example(); // 输出为 undefined
在严格模式下,可以通过以下方式来避免 'this' 的值为 'undefined':
function example() {
console.log(this);
}
const obj = { name: 'example' };
example.call(obj); // 输出为 { name: 'example' }
使用 'call' 或 'apply' 方法可以明确指定 'this' 的值。在上面的示例中,我们将 'this' 的值设置为 'obj' 对象,因此 'this' 的值为 '{ name: 'example' }'。
原文地址: https://www.cveoy.top/t/topic/ovPb 著作权归作者所有。请勿转载和采集!