首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

JSLint不喜欢.bind(这),但如果没有它,就无法访问this.obj

JSLint是一个用于JavaScript代码静态分析的工具,它用于检查代码中的潜在问题和错误。JSLint不喜欢使用.bind()方法来绑定函数的上下文,因为它认为这种方式可能导致代码难以理解和维护。

.bind()方法是JavaScript中用于绑定函数上下文的方法。它可以将函数绑定到指定的对象上,使函数内部的this关键字引用该对象。例如,使用.bind(this)可以将函数绑定到当前对象上。

在给定的代码中,如果没有使用.bind(this),就无法访问this.obj。这意味着在函数内部无法直接访问名为obj的属性或方法。

为了解决这个问题,可以使用其他方法来绑定函数的上下文,例如使用箭头函数。箭头函数会自动继承外部作用域的this值,因此不需要使用.bind()来绑定上下文。下面是一个使用箭头函数的示例:

代码语言:javascript
复制
const myFunction = () => {
  console.log(this.obj);
};

myFunction();

在上述代码中,箭头函数内部的this关键字将自动引用外部作用域的this值,因此可以直接访问this.obj。

对于腾讯云相关产品和产品介绍链接地址,由于要求不能提及具体的云计算品牌商,无法给出具体的推荐链接。但是腾讯云提供了丰富的云计算服务,包括云服务器、云数据库、云存储等,可以根据具体需求选择适合的产品。您可以访问腾讯云官方网站,了解更多关于腾讯云的产品和服务。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

JavaScript中的this指向问题

1、什么是this this一般指向的是调用它的对象,比如调用它的上下文是window对象,那就是指向window对象,如果调用它的上下文是某对象就是指向某对象…… //例如 console.log...,这里小张本来是拿快递的执行上下文,因为有事,改变拿快递的执行上下文,变成了小王,节约了小张的时间,他就不用另外安排时间去拿快递了 不同点 call、apply是立即执行,bind是不会立即执行,而是返回一个回调函数...,执行时需要加个() call格式为call(this.obj,arg,arg,…) , 接收一个或多个由逗号隔开的参数 apply格式为apply(this.obj,[argArray]),只接收两个参数...,一个是新this对象,一个是数组参数(类数组对象) bind格式为bind(this.obj,arg,arg,arg,…),接收一个或者多个有逗号隔开的参数 4.1.2怎么用 //call 这里能传递多个参数...person.say.call(this, 'pig', 'bird') person.say.call(this, ['pig', 'bird']) 注: arguments对象是一个类数组对象,具有数组长度

1.1K11

JSLint,JSHint,ESLint对比

老道把他认为的非Good Parts的部分都报了warning,而且在的文档中也提到了你应该欣然接受所有的JSLint的建议。...对了,如果想要使用这个工具,建议看看老道在YouTube上关于JavaScript编程风格的视频,讲的还是很幽默的。...JSHint JSHint是由Anton Kovalyov基于JSLint的代码实现的开源项目,由于JSLint时期大多数人都在受JSLint压迫,JSHint相比较之下,更友好,也更容易配置,所以很快发展了起来...但是,由于它是基于JSLint开发的,自然原有的一些问题它也继承下来了,比如不易扩展,不容易直接根据报错定位到具体的规则配置等,虽然之前好像是有过相关的讨论,但是现在仍然没有什么好的解决办法。...在这里还要提一点,ESLint最初并不是为了造一个重复的轮子,而是作者在实际使用中的需求没有能得到JSHint团队的回应,所以他结合当时的JSHint和另一个代码风格的检查工具JSCS写出来了现在具备代码风格检查

4K31
  • Html或JS语法检测之JSLint工具

    如果JSLint发现一 个问题,JSLint就会显示描述这个问题的消息,并指出错误在源代码中的大致位置。...尽管JSLint不能保证逻辑一定正确,确实有助于发现错误,这些错误很可能导致浏览器的 JavaScript引擎抛出错误。 2、规则 JSLint 执行代码质量检测的原理核心在于用户设定的规则集。...JSLint 将根据进行对 JavaScript 脚本的扫描工作,并给出相应的问题描述信息。规则的形式体现为多组键值对:[param:option],以规则名做键,对规则调用与否做值。...解压 rhino 压缩包,里面包含了 rhino(js.jar) 和 jslint(jslint.js),我们将 js.jar 添加的操作系统的 classpath 里,方便随处执行;并将 jslint.js...JSLINT(input, {[options]}) 是 JSLint 的执行方法,我们的 options 放在红色方框所在位置;如果要在待测文件头部添加注释类型规则,更加简单,将如下格式的注释添加到待检测

    4.1K70

    web系统性能及规范检测笔记

    最初的JSLint由于规则严格不妥协和拒绝开源等问题,受到一些诟病。时至今日JSLint也允许规则自定义并且可以在github上获取到了。 关于JSLint的默认规则和自定义规则盗张图描述: ?...另外,在这篇文章发布的三天前(2015/10/22), Douglas依旧在更新JSLint的强(yan)大(ge)功(gui)能(ze)从源码中可以略见一斑。 ? ?...拥有90多个不同的规则,但是如果不做配置的话没有任何作用。换言之,一切JSCS的要做的东西都需要根据需求自定义开启。...默认包含了所有 JSLint、JSHint 中存在的规则,迁移容易,而且可以给规则设置“警告”、“错误”或者直接禁用几个等级。另外它也包含代码风格检测规则,并支持插件扩展。...可以看到消耗时间最长的是jq的css函数,这个是总时间,现在想看单个函数执行时间最长,那么点击“平均时间”tab ? 这个时候能看到最慢的函数执行时间了。

    77220

    web系统性能及规范检测笔记

    最初的JSLint由于规则严格不妥协和拒绝开源等问题,受到一些诟病。时至今日JSLint也允许规则自定义并且可以在github上获取到了。 关于JSLint的默认规则和自定义规则盗张图描述: ?...另外,在这篇文章发布的三天前(2015/10/22), Douglas依旧在更新JSLint的强(yan)大(ge)功(gui)能(ze)从源码中可以略见一斑。 ? ?...拥有90多个不同的规则,但是如果不做配置的话没有任何作用。换言之,一切JSCS的要做的东西都需要根据需求自定义开启。...默认包含了所有 JSLint、JSHint 中存在的规则,迁移容易,而且可以给规则设置“警告”、“错误”或者直接禁用几个等级。另外它也包含代码风格检测规则,并支持插件扩展。...可以看到消耗时间最长的是jq的css函数,这个是总时间,现在想看单个函数执行时间最长,那么点击“平均时间”tab ? 这个时候能看到最慢的函数执行时间了。

    1.1K60

    java反射实现动态代理

    这样提供了一个操作对象的方法。 下面拷贝前辈的总结:     为了更好的理解java的反射机制,最好先对java的泛型有所了解。...如果只指定了,而没有extends,则默认是允许Object及其下的任何Java类。也就是任意类 1....Java运行时,对任意一个类,想知道它有哪些属性和方法,对于任意一个对象,想调用它的任意一个方法,都是可以实现的,来自JAVA的反射机制  2....但是实际使用时,一个真实角色必须对应一个 代理角色,如果大量使用会导致类的急剧膨胀;此外,如果事先并不知道真实角色,该如何使用代理呢?这个问题可以通过Java的动态代理类来解决 2. ...= obj; 41 } 42 43 public Object bind(Object obj){ 44 this.obj = obj; 45 return

    79670

    Eslint团队终于妥协了...

    JSHint是从JSLint派生出来的,他们工作原理类似,JSHint更灵活 —— 他提供了.jshintrc配置文件方便开发者自定义规则。...另一方面,如果想对代码风格做些个性化设置,Prettier很有可能不支持。...有时候我们并不需要「超过某个字符数折行」,因为在Git Diff时,折行会破坏Diff信息的可读性: 然而遗憾的是,Prettier并没有提供配置关闭这一行为。...规则冲突 最理想的情况,所有核心规则都能很好地相互配合,意味着没有两个规则应该标记同一个问题,也不会有任何两个核心规则给出相互冲突的建议。 当核心规则少于30条时,很容易。...但对于越来越多的规则,很难做到。 一致性问题 ESLint规则之间是无法互相访问的。意味着我们会遇到无法正确修复错误的问题,因为信息可能位于另一个规则中。

    38620

    前端科普系列(5):ESLint - 守住优雅的护城河

    梁城等到的却是一个其貌不扬、孤身应战的墨家侠客革离,谁料革离足智多谋,指挥梁城四千军民抵御十万赵军,功成身退。 “梁城”就好比我们的项目仓库,“梁城”的秩序取决于“革离”有没有守好!...工具,Douglas 定义了所有 JSLint 的规则,对于糟粕的语法是严格不让使用的,如果你要使用JSLint,就必须接受它所有规则。...存在的几个主要问题: 令人不安地固执己见,没有提供一些规则的配置 对社区反馈不关注 于是 JSHint 诞生了,它在 JSLint 的基础上,在社区开发者共同努力下,加入了如下特性: 更多可配置的规则...2、将乐趣进行到底 现在我们已经能做到了在开发时检测出来错误并且方便开发人员及时修复问题,依赖于开发同学自觉,如果开发同学不自觉或者忘记了,此时提交代码依然会把错误的代码提交到仓库中去。...每个开发同学提交时输入的信息各不一样,没有统一的格式,导致后面回溯提交记录时眼花缭乱,效率很低。 接下来看下,如何约束提交,来守住优雅得提交日志这道大门。

    1.7K40

    HTML5设计原理(中)

    我们今天也都是这样在做,在我们向文档中加入doctype时,相当于声明了“我想使用标准模式”,并不是发明doctype的本意。这只是为了达到特殊的目的在利用doctype。...,没错,简短好记是很好,如果这个好记的doctype无法适应现有的浏览器,还不如把忘了更好。...确实是个非常棒的工具,它可以把JavaScript代码变得完美无瑕。如果你通过JSlint运行JavaScript,它会告诉你“好,你的JavaScript代码有效,写法不妥。...你这种编码风格啊,我不喜欢。不赞成你这样写。这样写不好。”特别是对团队,对于要使用统一的编码风格的团队,JSlint是非常方便的工具。...为此,我非常欢迎HTML5这个新标准。 解决了一个现实的问题。我敢说在座不少朋友都曾遇到过这个问题。 那到底解决的是什么问题呢?浏览器不必因此重新写代码来支持这种写法。

    1.6K10

    23条JavaScript初学者应知的最佳实践方法

    JSLint也会查看一些风格习惯以及结构问题。并不证明你的代码是否正确,只是提供另外的一双眼睛来帮助发现问题。”...如果JS文件的目的仅仅是增加功能—例如,在点击某个按钮后—那么就将那些文件放在底部,body结束标签之前吧。绝对是一个最佳实践。...注释你的代码 一开始看起来似乎没有必要,请相信我,你将会想尽可能好地注释你的代码。当你几个月后再次回到项目,会发生什么呢?发现你根本没法轻松地记起当初对每一行代码的想法。...,{}派上用场了。...这些了,同志们。 现在你知道JavaScript初学者应该知道的23条基本技巧。感谢阅读。 专注分享当下最实用的前端技术。关注前端达人,与达人一起学习进步!

    43510

    【JS】308- 深入理解ESLint

    JSHint logo 由于 JSLint 让很多人无法忍受的规则,感觉受到了压迫,所以 Anton Kovalyov (现在在 Medium 工作) 基于 JSLint 开发了 JSHint。...JSHint 在 JSLint 的基础上提供了丰富的配置项,给了开发者极大的自由,JSHint 一开始保持着开源软件的风格,由社区进行驱动,发展十分迅速。...插件 使用插件 虽然官方提供了上百种的规则可供选择,但是这还不够,因为官方的规则只能检查标准的 JavaScript 语法,如果你写的是 JSX 或者 Vue 单文件组件,ESLint 的规则开始束手无策了...虽然节的标题叫最佳配置,但是软件行业并有没有什么方案是最佳方案,即使 javascript standard 也不是 javascript 标准的编码规范,仅仅只是叫这个名字而已,只有适合的才是最好的...但是 ES6 发布之后,JavaScript 语法发生了很多的改动,比如:箭头函数、模板字符串、扩展运算符……,这些语法的发布,导致 JSLint 和 JSHint 如果不更新解析器没法检测 ES6

    1.3K50

    JavaScript 重构攻略

    聪明的你也许还会提到一个问题: 如果没有 import 这个 play 模块,这个页面都不需要,那我能否连这个 play.js 都不加载呢?...eval(res.responseText); } } 原理是很简单,不过有一个藏匿着的魔鬼:eval,js 加载的生效了,那么执行的上下文就在的里面,这就会带来一些潜在的问题...虽然看起来有点歪门邪道,却恰恰是一个跨域问题的解决办法!因为浏览器对 引用 js 页面可没有同域的安全限制(以前转载过过一篇跨域问题的讨论,见此)。...如果有一天,后台 Java 代码的 TDD 做好了,那么换成 JavaScript 的代码,没有本质区别。...t.instanceNum,是无法访问到这个值的),如果这段代码都看不懂的话,赶紧温习一下 JavaScript 的面向对象吧 :)。

    1.9K20

    前端面试送命题-JS三座大山

    __proto__ === Object.prototype); // true 5.当试图获取对象属性时,如果对象本身没有这个属性,那就会去他的__proto__(prototype)中去寻找。...obj.fun.apply(a,["苹果","香蕉"]) // Jay今年23 喜欢吃苹果不喜欢吃香蕉 obj.fun.bind(a,"苹果","香蕉")() // Jay今年23 喜欢吃苹果不喜欢吃香蕉...call,apply,bind的执行方式如上例所示。call,apply都是改变上下文中的this,并且是立即执行的。bind方法可以让对应的函数想什么时候调用什么时候调用。...js的主要用途是与用户互动,以及操作DOM,决定只能是单线程。例:一个线程要添加DOM节点,一个线程要删减DOM节点,容易造成分歧。...任务列队 单线程意味着,所有的任务都要排队,前一个结束,才会执行后面的任务。如果列队是因为计算量大,CPU忙不过来,倒也算了。

    1.1K30

    JS的分号可以省掉吗?

    程序运行起来后,没有执行结果,而且没有报错。通过console.log打印数据发现,整个程序执行到map前面就再也不往下走了,很奇怪。因为没有报错信息,无法推测具体原因。...console.log("hello, fundebug"); [1, 2, 3].map(i=>console.log(i)) 程序正确执行了: [passed.png] 让我更加犯难,如果不加分号会导致程序出错...大宗师Douglas Crockford表示要正确使用分号 引用minhan在扯不完的 JS 分号问题文中的论述: JSON、JSLint、JSMin和ADSafe 的创造者、ECMA JavaScript...X,我是不会为了傻X的案例而去降低JSMin的级数; TC39正在考虑将『!』...如果你不想用分号,又怕出问题,v2ex上有位童鞋给出了一个速记方案: 如果你写 JS 代码不喜欢带分号,而又搞不清什么时候必须加分号,可以这么做:在以 "("、"[" 、"/"、"+"、"-" 开头的语句前面都加上一个分号

    9K60

    JavaScript设计模式——单体模式

    让我们能将代码组织成一个逻辑单元,并可以通过单一变量进行访问。 单体模式有以下优点: 用来划分命名空间,减少全局变量数量。 使代码组织的更一致,提高代码阅读性和维护性。 只能被实例化一次。...但在JavaScript中没有类,只有对象。当我们创建一个新对象,都是个新的单体,因为JavaScript中永远不会有完全相等的对象,除非它们是同一个对象。...onclick = () => { let first = create(); first.style.display = 'block'; } 4.使用new操作符 由于JavaScript中没有类...,JavaScript有 new语法来用构造函数创建对象,并可以使用这种方法实现单体模式。...我们通过重写上面的方法,加入闭包: function Leo(name){ let obj; this.name = name; obj = this; // 1.

    53020

    前端面试送命题-JS三座大山

    当试图获取对象属性时,如果对象本身没有这个属性,那就会去他的proto(prototype)中去寻找。...obj.fun.apply(a,["苹果","香蕉"]) // Jay今年23 喜欢吃苹果不喜欢吃香蕉obj.fun.bind(a,"苹果","香蕉")() // Jay今年23 喜欢吃苹果不喜欢吃香蕉...call,apply,bind 的执行方式如上例所示。call,apply 都是改变上下文中的 this,并且是立即执行的。bind 方法可以让对应的函数想什么时候调用什么时候调用。...js 的主要用途是与用户互动,以及操作 DOM,决定只能是单线程。例:一个线程要添加 DOM 节点,一个线程要删减 DOM 节点,容易造成分歧。...任务列队 单线程意味着,所有的任务都要排队,前一个结束,才会执行后面的任务。如果列队是因为计算量大,CPU 忙不过来,倒也算了。

    46610

    日常秀操作,16连杀,程序猿必备学习网站,你用过哪些?

    有时候我想写一些网页小工具,小程序什么的,不知道怎么配色,这个网站帮了我的大忙。 ---- 7....---- 8.在线工具箱 程序员工具箱 中类型的网站比较多,这是我看到过工具种类最多的了,推荐一波。...JSLint接受JavaScript源并对其进行扫描。如果发现问题,则会返回描述问题的消息以及源中的大致位置。问题不一定是语法错误,尽管通常是这样。JSLint着眼于一些样式约定以及结构问题。...并不能证明您的程序是正确的。只是提供另一组眼睛来帮助发现问题。...没有注册成功,不知道怎么获取注册码。不推荐使用。喜欢的朋友可以去看一下。

    1K21
    领券