解决可能的严格违反行为(并帮助蝙蝠侠拯救哥谭)

浮岩

我有以下(简化)Batman.js文件:

(function(){
  "use strict";

  window.Batman = function(){
    // Global references
    this.version = "1.0.1";
  };

  Batman.prototype.saveGotham = function(params) {
    var _ = this; // Works fine
    destroyGotham.call(_, params);
  };

  // Private
  function destroyGotham(params){
    var _ = this; // <!-- "possible strict violation"
  }

}());

JSHintpossible strict violation在指定的行抱怨a 我如何解决这个问题而不丢弃"use strict"

PS:我想麻烦var _ = this地引用Batman实例。

阿德内

this在严格模式下传递给函数的值不会强制成为对象。
对于普通函数,this始终是一个对象,如果使用undefined或null进行调用,则它是全局对象this,换句话说this,通常window在非严格模式下默认为。

自动装箱不仅会降低性能,而且在浏览器中暴露全局对象也存在安全隐患,因为全局对象提供对“安全” JavaScript环境必须限制的功能的访问。
因此,对于严格模式功能,this不会将指定的对象装箱到对象中,如果未指定,this则默认情况下将是未定义的。

这意味着使用this这种方式,只需将其设置为变量

var _ = this;

在大多数情况下this,这将导致未定义,这就是jshint称其为“可能”违反的原因,就像您不使用它call并提供this值的情况一样。

忽略jshint,您在做什么就可以了。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

解决可能的严格违反行为(并帮助蝙蝠侠拯救哥谭)

来自分类Dev

未创建为蝙蝠侠对象的嵌套模型

来自分类Dev

在没有“可能严格违反”的功能中使用此功能。

来自分类Dev

可能严格违反-对JavaScript函数使用原型方法

来自分类Dev

Java索引数组帮助。编码蝙蝠

来自分类Dev

需要帮助解决警告:取消引用类型双关指针将破坏严格别名规则

来自分类Dev

报告违反Seccomp的行为

来自分类Dev

此代码是否违反严格的别名规则?

来自分类Dev

这是否违反严格的别名规则?

来自分类Dev

char [] + memcpy()是否违反严格的别名?

来自分类Dev

页脚标记违反指定的行为

来自分类Dev

需要帮助,以使.htaccess更加严格

来自分类Dev

这真的违反了严格的混叠规则吗?

来自分类Dev

为什么JSLint在此函数上给出严格的违反错误?

来自分类Dev

通过引用访问是否违反严格的别名规则?

来自分类Dev

该代码是否违反了严格的混叠规则?

来自分类Dev

“结构继承”如何不违反严格的别名规则?

来自分类Dev

为什么JSLint在此函数上给出严格的违反错误?

来自分类Dev

$ nin在mongodb中的非严格行为

来自分类Dev

mysql严格模式下的休眠行为

来自分类Dev

模糊搜索的行为比预期的要严格

来自分类Dev

min_member / 2的违反直觉的行为

来自分类Dev

违反内存分配后free()的奇怪行为

来自分类Dev

谭逆德尔福

来自分类Dev

拯救亲子

来自分类Dev

SQL Query错误帮助解决

来自分类Dev

需要帮助解决功能问题

来自分类Dev

使用指针转换来存储/广播值:我是否违反了严格的别名规则?

来自分类Dev

将POD结构数组作为其单个成员的数组访问是否违反严格的别名?

Related 相关文章

热门标签

归档