Nic*_*ick 6 javascript jquery callback strict this
我得到的基本思想this在不是method在当strict mode概述这里,但它变得有点博学,是诚实的.所以,用更平淡的术语:
我有一个像这样的处理程序:
$('.myClass').one('keyup', function() {
var $this = $(this);
etc etc
});
Run Code Online (Sandbox Code Playgroud)
我想把它改成这个:
function myFunction () {
var $this = $(this);
etc etc
};
$('.myClass1').one('keyup', myFunction);
$('.myClass2').one('keyup', myFunction); etc
Run Code Online (Sandbox Code Playgroud)
它不喜欢它,因为strict mode因为我在this一个方法之外使用.我明白了.
但是,我需要myFunction与处理程序分开,因为(1)它附加到各种类/元素和(2)我用于在各个点.off().one('keyup', myFunction)重置one各种类的处理程序.
那么如何在不违反this业务的情况下绕过单独的回调函数呢?
在严格模式下,我得到的基本想法是不在方法中......
是的,但是你混淆了两个不相关的东西:严格模式和JSLint.它们在很大程度上是不相关的(除了JSLint可以选择要求严格模式).
您的代码在严格模式下没有问题.它完全有效且适当(因为jQuery使用的方式this).示例那里没有 "严格违规".
JSLint不喜欢它,但JSLint并不喜欢很多完全有效且合适的东西.JSLint检测到一些被广泛认可的问题组合(如缺少分号),以及Douglas Crockford从风格角度看不喜欢的东西.Crockford聪明且消息灵通,但不是每个人都同意他的风格选择.
Lint工具非常有用,是工具包的重要组成部分.通过将实体问题与样式问题混为一谈,JSLint的帮助不如它(在我看来)(虽然授予它是一个很好的线,使用JavaScript).您可以考虑使用JSHint,它可以让您更好地控制它检查的内容.