JavaScript封装

JavaScript封装,封装是面向对象编程的一种能力,表示把数据和指令隐藏到对象内部。其具体实现方法在不同的语言里有所区别。对于JavaScript来说,在构造函数内部声明的变量只能在对象内部使用,对于外部来说是不可见的。构造函数内部声明的函数也是这样的。

如果想从外部访问这些变量和函数,需要在赋值时使用关键字this,这时它们就成了对象的属性和方法。

我们来看一个示例:

function Box(width, length, height) {
    function volume(a,b,c) {
        return a*b*c;
    }
    this.boxVolume = volume(width, length, height);
}
var crate = new Box(5,4,3);
alert("Volume = " + crate.boxVolume); // 正确地工作
alert(volume(5,4,3)); // 由于volume()不可见而失败了

在前例中,从构造函数外部不能调用函数function volume(a, b, c),因为并没有用关键字this把它设置为对象的方法。与之不同的是,属性crate.boxVolume是可以从构造函数外部访问的。虽然它使用了函数volume()来计算,但这些操作是在构造函数内部进行的。

如果没有用关键字this把变量和函数“注册”为属性和方法,它们就不能从函数外部调用,则被称为“私有的”。

酷客网相关文章:

赞(0)

评论 抢沙发

评论前必须登录!