javascript闭包 - javascript中是用对象的属性来传参好还是用闭包内的变量来传参好?
本文介绍了javascript闭包 - javascript中是用对象的属性来传参好还是用闭包内的变量来传参好?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
今天在网上搜怎样组织javascript代码,看见有一条建议是
以下是我写的示例
编写一个改变元素的背景颜色的功能。
//编写一个改变元素的背景颜色的功能。
//用对象属性传参
var style_obj = {
$elem:null, //使用对象属性存放数据
change_bg:function(color) { //改变背景颜色
$elem.css('background',color);
},
}
style_obj.$elem = $('#abc');
style_obj.change_bg('#f00');
//用闭包内的变量传参
var style_obj = (function() {
var $elem = null; //使用局部变量存放数据
return {
update_$elem:function(e) { //更新$elem的值
$elem = e;
},
change_bg:function(color) { //改变元素的背景颜色
$elem.css('background',color);
}
};
})();
style_obj.update_$elem($('abc'));
style_obj.change_bg('#f00');
对象属性传参和闭包变量传参哪一种好?(我感觉两种方法差不多,不知道怎么取舍。)
解决方案
我觉得用闭包更加复杂,但是封装性更好避免全局污染。面向对象更加直观,还是用面向对象吧
这篇关于javascript闭包 - javascript中是用对象的属性来传参好还是用闭包内的变量来传参好?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文