如何停止通过引用传递
how can i stop pass by reference?
我在通过引用或值传递时遇到问题。
我知道人们可能会认为这是一个重复的帖子,但我没有找到解决这个问题的方法。
我有这样的东西:
//<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
中都发生了变化
有没有办法不改变它们?
您可以创建对象的新副本并使用它。你可以使用 jquery.extend 来实现这一点。
var newObject = $.extend({}, m.bigObject);
而不是做
manipulateObject : function(){
m.bigObject.place = 'work';
}
你可以做:
manipulateObject : function(object){
object.place = 'work';
}
相关文章:
- 引用对象中的通用值
- 如何在JavaScript中将字符串转换为函数引用
- 当包含另一个asp文件时,是否也包含所有引用的样式和脚本页面
- jQuery UI自动完成突然停止工作
- 单击F5时如何停止页面加载
- JavaScript打印功能使日历停止工作
- 如何在未直接触发的情况下停止事件
- 播放当前视频时如何停止其他视频?JavaScript
- 我已经创建了一个jquery转盘,并使用if条件来运行和停止转盘
- 在动态创建的元素上获取对特定选择器的引用
- IIFE中的函数引用不可用
- 如何通过引用var Using DataTables来进行分页或排序
- 当我移动引用three.js的html文件时,three.js停止工作
- 如何停止通过引用传递
- 控制台:引用错误:未定义停止传播
- 停止对作为函数参数传递到新列表的对象引用
- 停止在 javascript 中更新原始对象引用
- 如何在 Debian 上通过 node.js 中的引用变量停止子进程
- 停止CKEditor自动添加
在引用
- 当所有引用都丢失时,从对象实例开始停止超时