JavaScript中提高代码的封装性
我出的面试题中,有一条是问如何避免页面引用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(){})();
这种方式可以应用到子函数,乃至推广到所有的函数,层层封装,没有止境。并且有闭包属性,不必担心全局的绑定访问不到里层的函数:
相关推荐
nmgxzm00 2020-11-10
ifconfig 2020-10-14
hhanbj 2020-11-17
zfszhangyuan 2020-11-16
古叶峰 2020-11-16
一个智障 2020-11-15
jipengx 2020-11-12
81427005 2020-11-11
xixixi 2020-11-11
游走的豚鼠君 2020-11-10
苗疆三刀的随手记 2020-11-10
Web卓不凡 2020-11-03
小飞侠V 2020-11-02
帕尼尼 2020-10-30
爱读书的旅行者 2020-10-26
帕尼尼 2020-10-23
杏仁技术站 2020-10-23
淼寒儿 2020-10-22