我正在将jQuery中现有的工作代码重构为jQuery插件。在原始代码中,我有几个变量用于存储设置。其中一个变量在另一个中引用:
var className = ".container";
var element = `<div class="${className.slice(1)}"></div>`;
在插件代码中,我尝试做同样的事情,但在Object Literal中,当我引用“className”时,我得到了未定义的:
$.fn.pluginName = function (options) {
var defaultSettings = {
className: ".container",
element: function() {
return `<div class="${this.className.slice(1)}"></div>`;
};
};
var settings = $.extend({}, defaultSettings, options);
};
1条答案
按热度按时间a8jjtwal1#
既然您已经说过不控制如何调用
element
函数,那么就不能在其中依赖this
(除非您使用bind
,但这里没有必要)。我假设
options
可以覆盖defaultSettings.className
,所以您不只是想使用defaultSettings
而不是this
。但是,您可以使用
settings
:即使它在代码中位于
const settings
之上,也不会被 * 调用 *,直到settings
被初始化为一个值。