访问函数javascript

访问函数javascript,javascript,function,namespaces,Javascript,Function,Namespaces,如何从其他命名空间访问该函数 例如: 一种方法是直接从prototype对象调用该方法: FavoriteFlavor.chooseEmoticonState.prototype.show(); 但是,任何此实例引用都不会指向指令状态的实例。您可以通过使用or方法,并将this作为第一个参数传递来更正此问题 FavoriteFlavor.chooseEmoticonState.prototype.show.call(this); 此外,除非您有理由不这样做,否则您可以简单地将选择的showp

如何从其他命名空间访问该函数

例如:


一种方法是直接从
prototype
对象调用该方法:

FavoriteFlavor.chooseEmoticonState.prototype.show();
但是,任何
实例引用都不会指向
指令状态
的实例。您可以通过使用or方法,并将
this
作为第一个参数传递来更正此问题

FavoriteFlavor.chooseEmoticonState.prototype.show.call(this);
此外,除非您有理由不这样做,否则您可以简单地将
选择的
show
prototype的
方法添加到
指令状态
prototype中

FavoriteFlavor.instructState.prototype.show = FavoriteFlavor.chooseEmoticonState.prototype.show;

一种方法是直接从
prototype
对象调用该方法:

FavoriteFlavor.chooseEmoticonState.prototype.show();
但是,任何
实例引用都不会指向
指令状态
的实例。您可以通过使用or方法,并将
this
作为第一个参数传递来更正此问题

FavoriteFlavor.chooseEmoticonState.prototype.show.call(this);
此外,除非您有理由不这样做,否则您可以简单地将
选择的
show
prototype的
方法添加到
指令状态
prototype中

FavoriteFlavor.instructState.prototype.show = FavoriteFlavor.chooseEmoticonState.prototype.show;

show
函数处于
FavoriteFlavor.chooseMotiConstate.prototype
状态,而不是
FavoriteFlavor.chooseMotiConstate
,因此您可以通过以下方式调用它:

FavoriteFlavor.chooseEmoticonState.prototype.show();
但考虑到它是在一个原型上,直接调用它并没有多大意义

有意义的做法是在
chooseEmoticonState
的实例上调用它:

// assume chooseState has been instantiated with 
//    new FavoriteFlavor.chooseEmoticonState();
chooseState.show();
FavoriteFlavor.chooseEmoticonState = {
    show: function() {
    }
};
或者,如果
show()
不打算作为实例方法,请将其直接放在
FavoriteFlavor上。选择“运动状态”

// assume chooseState has been instantiated with 
//    new FavoriteFlavor.chooseEmoticonState();
chooseState.show();
FavoriteFlavor.chooseEmoticonState = {
    show: function() {
    }
};
然后你可以用你以前尝试过的方式来称呼它:

FavoriteFlavor.choseEmoticonState.show();

show
函数处于
FavoriteFlavor.chooseMotiConstate.prototype
状态,而不是
FavoriteFlavor.chooseMotiConstate
,因此您可以通过以下方式调用它:

FavoriteFlavor.chooseEmoticonState.prototype.show();
但考虑到它是在一个原型上,直接调用它并没有多大意义

有意义的做法是在
chooseEmoticonState
的实例上调用它:

// assume chooseState has been instantiated with 
//    new FavoriteFlavor.chooseEmoticonState();
chooseState.show();
FavoriteFlavor.chooseEmoticonState = {
    show: function() {
    }
};
或者,如果
show()
不打算作为实例方法,请将其直接放在
FavoriteFlavor上。选择“运动状态”

// assume chooseState has been instantiated with 
//    new FavoriteFlavor.chooseEmoticonState();
chooseState.show();
FavoriteFlavor.chooseEmoticonState = {
    show: function() {
    }
};
然后你可以用你以前尝试过的方式来称呼它:

FavoriteFlavor.choseEmoticonState.show();

在不同的javascript模式中:(只是为了多样性)


在不同的javascript模式中:(只是为了多样性)


您是否必须使用
prototype
进行编码,或者您是否允许使用不同的javascript模式??因为原型是指为新创建的对象(不用作名称空间)提供的方法,每当有人希望直接在原型上调用方法而不是在实例化的对象上调用方法时,这让我想知道你的函数是否布局正确,是否应该在实际的名称空间中,而不是在原型上。你是否必须使用
prototype
进行编码,或者你是否允许使用不同的javascript模式??因为原型是指为新创建的对象提供的方法(不作为名称空间使用),每当有人经常直接在原型上调用方法而不是在实例化对象上调用方法时,我就想知道您的函数是否布局正确,是否应该在实际的命名空间中,而不是在原型上。您是对的!谢谢你的解释。你能谈谈原型图案吗?我对此有点困惑。你说得对!谢谢你的解释。你能谈谈原型图案吗?我对此有点困惑。我仍在试图找出一个私有变量的点,这个变量没有被任何东西访问。第二个IIFE不返回任何内容,因此FavoriteFlavor.instructState的值将是未定义的。仅以私有变量为例,此模式名为匿名函数,允许在第二个“对象类”中创建公共和私有变量没有任何返回,因为您没有发布任何内容,并且在第一个返回中,您返回了show,它是对
函数show()
的引用,您正在将其公开,现在
FavoriteFlavor.ChooseMotiConstate.show
its public仍在尝试找出任何东西都无法访问的私有变量的点。第二个IIFE不返回任何内容,因此FavoriteFlavor.instructState的值将是未定义的。仅以私有变量为例,此模式名为匿名函数,允许在第二个“对象类”中创建公共和私有变量没有任何返回,因为您没有发布任何内容,并且在第一个返回中,您返回了show,它是对
函数show()
的引用,您正在将其公开,现在是
FavoriteFlavor.chooseSeeMotiConstate.show
它的公开