|
闭包
这种公共、私有和特权成员的模式是可行的原因是由于JavaScript有closure闭包。这个意味着一个内部的函数总是可以访问这个函数外部的变量和参数,甚至在外部的函数返回之后。这是这个语言的一个极其强大的特性。目前没有哪本关于JavaScript编程的书展示了如何发掘这个特性。大多数都没有提到。
私有和特权成员只能在对象构造的时候生成。公共成员可以在任意时刻添加。
模式
公共(Public)
function Constructor(…) {
this.membername = value;
}
Constructor.prototype.membername = value;
私有(Private)
function Constructor(…) {
var self = this;
var membername = value;
function membername(…) {…}
}
注意,实际上函数语句
function membername(…) {…}
是以下语句的缩写,两者相同:
var membername = function membername(…) {…};
特权(Privileged)
function Constructor(…) {
this.membername = function (…) {…};
}
共2页: 上一页 [1] 2 下一页
|