我正在尝试制作插件并遇到一些问题:
(function($){
var users = {};
$.fn.plugin = function(){
//blah, but alters users
}
$.fn.utility_function = function(){
// uses users
}
});
当我运行此插件的两个实例时,“用户”最终会为插件的每个实例提供相同的值。我如何使它们独一无二?
答案 0 :(得分:2)
答案 1 :(得分:0)
如果您想要唯一的对象,可以使用jquery内置的extend
方法对对象进行深层复制。
在你的情况下,你会这样做:
(function($){
var users = {};
$.fn.plugin = function(){
var myUsers = $.extend({}, users);
//blah, but alters users
// BUT should now use myUsers instead
}
$.fn.utility_function = function(){
// uses users
}
});
但我不确定你是否想要用户对象的唯一副本,因为它们可能是一个可能只在全局发生变化的单一集合。