0
我創建了一個插件,但想確定我是如何處理「本地」函數的。jquery插件中的本地方法和名稱空間
這裏是示意我所做的:
(function($) {
var methods = {
init : function(options) {
// CODE ...
// Call of a local function
_test(this);
// CODE .....
},
destroy : function() {
// CODE .....
_test(this);
// CODE .....
}
};
function _test(container) {
// My code : example :
$(container).append("<div id='myplugin'></div>");
}
$.fn.myplugin = function(method) {
if (methods[method]) {
return methods[method].apply(this, Array.prototype.slice.call(arguments, 1));
}
else if (typeof method === 'object' || ! method) {
return methods.init.apply(this, arguments);
}
else {
$.error('Method ' + method + ' does not exist on jQuery.myplugin');
}
};
})(jQuery);
正如你所看到的,我不直接插入代碼的方法的功能,但在其他_functions。 _functions可以被認爲是插件的本地或私人功能嗎?我不會成功地將它們稱爲插件外,所以它似乎可以被認爲是私人函數...
我是否總是將我的代碼直接放在方法對象的函數中? 如何聲明將在幾種方法中使用的函數?
那麼命名空間呢?不太明白。
謝謝!
我不確定要了解什麼。 – bastien
@bastien你不瞭解哪些部分? –
我明白聲明函數內部的函數是私有的。我的方法對象的方法是公開的,以便在我的網頁代碼中調用。但是,我不明白爲什麼我在方法對象的方法中調用的函數不是私有的......我認爲從插件外部直接調用它們是不可能的。此外,如果我想在方法對象的多個方法中使用函數,解決方案是什麼? – bastien