gpt4 book ai didi

javascript - 如何在没有 ESLint no-unused-var 错误的情况下公开全局 javascript 函数?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:29:36 26 4
gpt4 key购买 nike

以下代码在 ESLint 中有效,具有 Google 的风格指南,但有一个异常(exception);当使用 ESLint 检查脚本时,闭包函数 Counter 得到一个 no-unused-vars 错误。

/**
* Create a counter that is incremented and returned when called
* @return {object} - incrementor function
*/
function Counter() {
var _i = 0;

/**
* increment counter
* @return {int} - The incremented integer
*/
function _incrementor() {
_i++;
return _i;
}

_incrementor.incr = function() {
this.call();
return _incrementor;
};

_incrementor.val = function(val) {
if (!arguments.length) { return _i; }
_i = val;
return _incrementor;
};

return _incrementor;
}

我希望将此函数(或一种相同的结构)作为一个独立的脚本,我可以将其包含在我的 HTML 中,然后从不同的脚本中调用,如下所示:

var count = Counter()
.val(5);

count.incr()
console.log(count.val()) // prints => 6

我尝试在脚本顶部包含 /* exported Counter */ 但错误仍然存​​在。如何消除/修复此错误?

最佳答案

将 Counter 显式添加到全局范围可以消除此错误,并防止由于问题中使用的隐式全局范围而可能发生的错误。

/**
* Create a counter that is incremented and returned when called
* @return {object} - incrementor function
*/
this.Counter = function() {
var _i = 0;

/**
* increment counter
* @return {int} - The incremented integer
*/
function _incrementor() {
_i++;
return _i;
}

_incrementor.incr = function() {
this.call();
return _incrementor;
};

_incrementor.val = function(val) {
if (!arguments.length) {
return _i;
}
_i = val;
return _incrementor;
};

return _incrementor;
};

关于javascript - 如何在没有 ESLint no-unused-var 错误的情况下公开全局 javascript 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34209063/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com