0

在下面的小提琴中,我希望Mo能够打电话Su,但不能反过来。

我该如何实现这一点。我不想使用事件。只是 JavaScript 的原生功能。

模型是 MVC 中的传统模型。Support 包含模型运行所需的支持功能。

莫 -> 苏

http://jsfiddle.net/bkYcr/2/

4

1 回答 1

1

如果您不希望“任何其他访问 Mo”,您可以将 Mo 设为私有。它是通过将函数Model变成构造函数来完成的。

$Frame.Model = function(model_object){
    var privateFunc = function() {
        //Private function of Model objects. Can access Su.
    }
    this.publicFunction = function() {
        //Public function of Model objects. Anyone can access this by Mo.publicFunction(). Also can access Su.
    }
}

这个函数是一个构造函数。所以要制作 Mo,做

Mo = new $Frame.Model();

记住不要忘记新的。否则事情就会一团糟。为了防止“混乱”(发生这种情况是因为构造函数中的 this 指的是window如果你忘记了新的),请执行以下操作:

$Frame.Model = function(model_object){

    if (!(this instanceof $Frame.Model))
        return new $Frame.Model();
    var privateFunc = function() {
        //Private function of Model objects. Can access Su.
    }
    this.publicFunction = function() {
        //Public function of Model objects. Anyone can access this by Mo.publicFunction()
    }
}
于 2012-10-01T20:51:36.000 回答