我阅读了有关此主题的其他一些答案,但我不确定我是否了解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
可以算是button
,method
可以是addEventListener
和cb
回调里面的addEventListener
。
我知道我可以bind
用来改变上下文,this
但我想更深入地了解它为什么会这样工作。
为什么this …
我想将我的照片从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来使用它的命令提示符,但是没用!
有没有人可以帮助我?
有谁知道在不损失图像质量的前提下减小图像尺寸的任何工具?