我有通过引用或值传递的问题。
我知道人们可能这是一个重复的帖子,但我找不到解决这个问题的方法。
我有类似的东西:
//<div data-content="{bigObject}" id="SomeId"></div>
// Originally bigObject was something like:
bigObject = {
place : 'home',
time : ''
};
$('#SomeId').click(function(){
$(this).someFunction();
});
(function($){
$.fn.someFunction = function(){
var m = {
obj : this,
bigObject : '',
initialize : function(){
m.bigObject = m.obj.data('content');
m.manipulateObject();
},
manipulateObject : function(){
m.bigObject.place = 'work';
}
}
m.initialize();
return m.obj;
}
})(jQuery);
问题是当我点击SomeId
时,大对象在div data('content')
和函数m.bigObject.place
有没有办法不改变它们?
答案 0 :(得分:0)
您可以创建对象的新副本并使用它。您可以使用jquery.extend。
var newObject = $.extend({}, m.bigObject);
而不是做
manipulateObject : function(){
m.bigObject.place = 'work';
}
你可以这样做:
manipulateObject : function(object){
object.place = 'work';
}