小编pld*_*ldg的帖子

addEventListener 回调中的 this 关键字

我阅读了有关此主题的其他一些答案,但我不确定我是否了解this关键字在addEventListener.

const button = document.querySelector('button');

function foo() { console.log(this) }

button.addEventListener('click', foo);
Run Code Online (Sandbox Code Playgroud)

foo是内部的常规函数addEventListener,它不是button对象上的方法。当foo被调用时应该在全局对象的上下文中执行,因此this应该等于window而不是button

看起来类似于这个例子的情况

const obj = {
  method: function (cb) {
    console.log('method', this); // `this` === `obj`

    return cb();
  }
};

obj.method(function() {
  console.log('cb', this); // `this` === `window`
});
Run Code Online (Sandbox Code Playgroud)

哪里obj可以算是buttonmethod可以是addEventListenercb回调里面的addEventListener

我知道我可以bind用来改变上下文,this但我想更深入地了解它为什么会这样工作。

为什么this …

javascript this addeventlistener

9
推荐指数
2
解决办法
5057
查看次数

如何NPM审核全局软件包

npm官方文档中所述,您可以npm audit在本地安装的软件包上手动运行,这些软件包必须同时具有package.jsonpackage-lock.json文件。

全局安装的软件包没有package-lock.json,如果运行审核,它将抛出错误:npm ERR! code EAUDITNOLOCK

如何npm audit在所有全局安装的软件包上运行?

npm

7
推荐指数
3
解决办法
1195
查看次数

如何在Windows 8.1中将照片转换为Google的webp格式?

我想将我的照片从jpg,gif和png转换为WebP格式!当我尝试使用CMD使用cwebp命令时,出现以下错误消息:

'cwebp' 不被识别为内部或外部命令,可操作程序或批处理文件。

我该怎么办?

我已经下载了所有需要的文件,例如libwebp-0.4.0-windows-x86.zip和WebpCodecSetup.exe(从此url:“ https://code.google.com/p/webp/downloads/list ”) 。

甚至我已经安装了Visual Studio来使用它的命令提示符,但是没用!

有没有人可以帮助我?

另一个问题:

有谁知道在不损失图像质量的前提下减小图像尺寸的任何工具?

powershell cmd image-processing image-compression webp

4
推荐指数
1
解决办法
1696
查看次数