【发布时间】:2015-03-04 05:36:06
【问题描述】:
我正在开发一个没有选择器的 jQuery 插件。在初始化它时,我实例化了一个具有函数的对象。在这些函数中,我需要使用闭包。在这些闭包中,我想调用我的初始对象函数。
为了更清楚,这里是代码的简化版本。
HTML
<script src="/path/to/jquery/2.1.1/jquery.min.js"></script>
<script src="/path/to/my/script/myeditor.js"></script>
<div class="editable">Div1</div>
<div class="editable">Div2</div>
<script>
$.myeditor({
option1: 'a',
option2: 'b'
});
</script>
myeditor.js
function ($) {
var MyEditor = function (options)
{
this.$options = $.extend(true, {}, $.myeditor.defaults, options);
this.init();
};
$.myeditor = function (options = {})
{
return new MyEditor(options);
};
$.flyeditor.defaults = {
option1: '1',
option2: '2'
};
MyEditor.prototype.notify = function(message = '')
{
console.log(message);
};
MyEditor.prototype.init = function()
{
// Do stuff
$('.editables').each(function() {
$this = $(this);
// Here comes the error
notify($this.html());
});
};
}(jQuery);
问题是notify(this.html());引发了错误ReferenceError: notify is not defined
如何使用此通知方法?
【问题讨论】:
-
MyEditor.prototype.notify = function(message = ''){不是有效的 JavaScript,您使用的是预处理器吗?
标签: javascript jquery scope closures