javascript闭包 - javascript中是用对象的属性来传参好还是用闭包内的变量来传参好?

查看:103
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆