2.类的封装
在Java里,对类的方法或是属性,可以设置为私有,这样就可以避免外部的调用,而JavaScript却不存在这样的设置,看看下面的代码:\
var person = { name:null, init:function(name){ this.setName(name); }, setName:function(name){ this.name = name; return this.name; } } person.init('tom'); //tom
在这个类里,一共有2个方法,分别是init和setName,而我们只希望从init中运行setName,或是以后将会为里面添加的各种方法,而不希望出现:
person.setName('tom'); //tom
直接调用setName方法,正确的说,希望setName方法私有,还有name属性私有.避免别的程序员使用你的类时,调用了不想被调用的方法. 那应该怎么对类的封装好呢?试试另一种编程方式吧,看看改版的怎么样:
var person = function(){ var name = null; var setName = function(n){ name = n; return name; } return{ init:function(n){ setName(n); } } }
这样子,就可以讲原本要私有化的方法和属性私有化了,外部无法直接调用了.这也是利用了闭包而达成所需要的方式的.可是这种编程方式不易于读,尤其是新手看到这种代码会很吃力,还有在占用内存方面也要比一般的高些. 好了,暂时先介绍到这里,下次有时间在说说闭包与作用域.
经典论坛交流: http://bbs.blueidea.com/thread-2958015-1-1.html
本文链接:http://www.blueidea.com/tech/web/2009/7264.asp
出处:蓝色理想
责任编辑:bluehearts
上一页 JavaScript对象探讨 [3] 下一页
◎进入论坛网页制作、WEB标准化版块参加讨论,我还想发表评论。
|