在Javascript中限制主obj对其属性的属性的访问

时间:2013-06-12 18:22:33

标签: javascript chaining

好的,我正在用javascript创建一个链接方法,我正在尝试归档主要的obj或类可以访问属性的4个属性,并且属性必须能够访问主obj不能访问的某些函数。

这是一个例子:

var Main = function(){

return {
 property1:function(){
return this;
},
property2:function(){
return this;    
},
etc:function(){
    return this;
}...

}
}

按照你所知的方式执行:

  Main().property1().property2().etc();

Main可以访问其属性,但Main必须无法访问属性为Main属性的属性。以简单的方式:just the properties of Main must have access, not Main

这是一个例子:

Main().property().innerProperty1().innerProperty2().etc()//cool, property1 can access to innerProperty 1 and 2 and etc()

但如果我想这样做:

Main().innerProperty() // ERROR, Main does not have acccess to innerProperty()

这可能在javascrip中可行吗?请记住,必须是可链接的。

1 个答案:

答案 0 :(得分:0)

我仍然不太确定你在问什么,但这就是我想出的。我制作了两个JS课程来演示你在说什么。

function Owner(name) {
    this.Name = name;

    this.ChangeName = function (newName) {
        this.Name = newName;
        return this;
    };
}


function Car(make, model, owner) {

    this.Make = make;
    this.Model = model;
    this.Owner = owner;

    this.UpdateMake = function (newMake) {
        this.Make = newMake;
        return this;
    };

    this.UpdateModel = function (newModel) {
        this.Model = newModel;
        return this;
    };

    this.UpdateOwner = function (newOwner) {
        this.Owner = newOwner;
        return this;
    };

}

这是小提琴:http://jsfiddle.net/whytheday/zz45L/18/

除非首先通过所有者,否则汽车将无法访问所有者的姓名。