码迷,mamicode.com
首页 > 编程语言 > 详细

javascript中提高代码的封装性

时间:2017-04-15 00:37:37      阅读:180      评论:0      收藏:0      [点我收藏+]

标签:等价   java   它的   click   面试题   .net   down   没有   闭包   

我出的面试题中,有一条是问如何避免页面引用JS,出现函数、变量重复、冲突的。

从大的方面讲,应该引入javascript的模块化开发,符合AMD规范之类;

从小的方面说,大概就是限定变量和函数的作用域了,这也涉及到一点大家如雷贯耳的闭包概念。

众所周知,javascript没有类,只有函数。其实它的函数也跟类差不多了,函数里面可以定义函数。而对于.net来说,直到近期出现的C#7,才支持这一点。

所以,我们可以将函数和变量,都定义在一个函数里面,这样即与外部隔绝矣:

<html>
<head></head>
<body></body>
</html>
<script>
(function (){
    function f1(){};
    var v1;
    ....
})();
</script>

在一个页面中这样书写,等价于:

<html>
<head></head>
<body></body>
</html>
<script>
    function f1(){};
    var v1;
    ....
</script>

但封装性就好了许多,避免出现后者这种平铺直白,将方法和变量完全暴露于外界的隐患。并且(function(){})(); 这种方式可以应用到子函数,乃至推广到所有的函数,层层封装,没有止境。并且有闭包属性,不必担心全局的绑定访问不到里层的函数:

(function(){
    function f1(){}
    function f2(){}
    $("#btn1").click(function(){
        f1();
        f2();
    });
}

javascript中提高代码的封装性

标签:等价   java   它的   click   面试题   .net   down   没有   闭包   

原文地址:http://blog.csdn.net/leftfist/article/details/70175560

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!