JSHINT:__proto__属性已弃用
JSHINT: The __proto__ property is deprecated
我正在使用"hasOwnProperty"函数来扩展兼容性,但JSHint表示不赞成使用Object.protype.__proto__。有没有办法重写这个函数来避免这个警告并确保兼容性?
var hasOwnProperty = function (obj, prop) {
var proto = obj.__proto__ || obj.constructor.prototype;
return (prop in obj) &&
(!(prop in proto) || proto[prop] !== obj[prop]);
};
执行您尝试执行的操作的"正确"方法是使用Object.getPrototypeOf
函数:
var proto = Object.getPrototypeOf(obj);
不过,这在Internet Explorer 8及以下版本中不受支持,因此,如果您需要支持旧环境,您可以扩展测试以包括检查,并在必要时返回到__proto__
。
这显然无法避免JSHint警告,因此您可能仍然需要设置proto
选项来关闭它。
如果您想避免重写代码,可以在文件顶部添加以下内容。这是JSHint中的一个"放松"选项,您可以使用它来减少收到的警告数量:
/* jshint proto: true */
相关文章:
- 如何永久停止jshint'只读'警告/错误
- JShint-.jshintrc中的ES6有esversion,但仍收到警告(使用atom)
- 如何使用socket.io在meanjs项目中配置jshint
- Javascript:JSHint:应为赋值或函数调用,但实际看到的却是表达式
- 如何将事件处理程序分配给proto.io开关
- 如何在jshint任务运行且一切正常时记录消息
- JSHINT:__proto__属性已弃用
- Visual Studio代码错误-未能加载jshint库
- 我怎样才能抑制JSHint“;JSCS:非法空间“;Visual Studio 2013中的警告
- grunt contrib jshint-error在定义之前就已经使用过了
- JSC_TRAILING_COMMA:分析错误.IE8(及以下版本)-jshint可以警告我使用左尾逗号吗
- JSHint”;可能存在严重违规行为"当使用“bind”时
- 如何禁用'通过'.jshintrc中jshint的检查器
- JSHint 错误:未定义我的应用程序 (W117)
- 如何正确解决此JSHint“可能严格违规”
- JShint 在不同的机器上的行为不同,尽管代码、版本和配置相同
- 如何重写此 Javascript 代码以避免 JSHint 警告
- JSHint 错误“对象不支持此属性或方法”用于 javascript 闭包
- Jshint.com |分配给“这个”
- JSHint 未使用的变量