JavaScript教程:几种比较熟悉的编程习惯(4)

http://www.itjxue.com  2015-08-06 23:08  来源:未知  点击次数: 

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);
        }
    }
}

这样子,就可以讲原本要私有化的方法和属性私有化了,外部无法直接调用了.这也是利用了闭包而达成所需要的方式的.可是这种编程方式不易于读,尤其是新手看到这种代码会很吃力,还有在占用内存方面也要比一般的高些.
好了,暂时先介绍到这里,下次有时间在说说闭包与作用域.

(责任编辑:IT教学网)

更多

推荐Javascript/Ajax文章