javascript闭包 - javascript中是用对象的属性来传参好还是用闭包内的变量来传参好?
高洛峰
高洛峰 2017-04-11 11:06:23
[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');

对象属性传参和闭包变量传参哪一种好?(我感觉两种方法差不多,不知道怎么取舍。)

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(1)
迷茫

我觉得用闭包更加复杂,但是封装性更好避免全局污染。面向对象更加直观,还是用面向对象吧

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号