我采用了一个定义了多个对象文字的项目——主要用于构建代码。顺便说一句,不是全职前端开发人员。问题是它们中的一些是用 jQuery onready 事件定义的,而一些在外部。至少可以说,这似乎真的有问题。这会被认为是糟糕的设计吗?我假设是这样。我已经包含了一段代码,它显示了一些问题,特别是 obj2 中的 from_inside 函数:
<script>
$(document).ready(function(){
alert('here i am' + obj2.handlers2.background2); // can access the obj2 value as expected
alert('make this up: ' + obj2.handlers2.tell_me2());
var obj={};
obj.handlers={
background: 'blue',
foreground: 'green'
}
});
var obj2={};
obj2.handlers2={
background2: 'here i am jt',
foreground2: 'there you are',
tell_me2: function(){
return "these are things";
}
,
from_inside: function(){
alert('color from inside jQuery: ' + obj.handlers.background); // problem here! could I get a reference to obj here?
}
};
obj2.handlers2.from_inside();
</script>
鉴于我们目前拥有它,什么是更可取的解决方法?看起来我可以在上面将 jQuery 对象的引用传递给 obj2,但即使可能,将所有对象拉到 jQuery 之外可能会更简单。
提前谢谢任何建议
编辑#1
$(document).ready(function(){
$(document).on('click','#pairing-comment-submit', function(){
arc.event_handler.submit_pairing_comment.call(this);
});
... about 50 more of these
});
arc={};
arc.event_handler={
submit_pairing_comment: function(){
var id=$(this).data('the-id');
....
},
....
}