// 示例代码:使用 self 关键字
// 在浏览器环境中,self 是一个全局对象,指向当前的 window 对象。
// 在 Web Worker 中,self 则指向 worker 的作用域。
// 示例 1: 在全局作用域中使用 self
console.log(self === window); // true,在浏览器环境中 self 和 window 指向同一个对象
// 示例 2: 使用 self 作为 this 的别名
function Counter() {
let count = 0;
const self = this; // 将 this 赋值给 self,确保在嵌套函数中也能访问到正确的 this
setInterval(function() {
console.log(self.count++); // 使用 self 访问 this
}, 1000);
}
const counter = new Counter();
// 示例 3: 在 Web Worker 中使用 self
// 在 Web Worker 中,self 是唯一的全局对象,用于与主线程通信
// self.postMessage('Hello from worker');
// self.onmessage = function(event) {
// console.log('Message received:', event.data);
// };
self
:在浏览器环境中,self
和 window
是等价的,都指向全局对象。self
作为 this
的别名:有时在嵌套函数或回调函数中,this
的指向会发生变化。通过将 this
赋值给 self
,可以确保在嵌套函数中仍然能够正确访问外部的 this
。self
:在 Web Worker 中,self
是唯一的全局对象,用于与主线程进行通信。上一篇:js trycatch
下一篇:js =>
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站