1

わかりました、私は過去3時間、これに対する解決策を見つけようとしています...

独自のライブラリ、関数内の関数内のアクセス可能な関数などを作成できるようにしたい.

これが私がやりたいことです...

var outer=function()
{
    this.inner=function()
    {
        this.innermost=function()
        {
        alert("innermost");
        }
    }   
}
var outer=new outer;

function start()
{   
//I want to call it like this but fails!
outer.inner.innermost();    
}

これは、最も内側を呼び出そうとすると失敗します。しかし、関数内に関数があれば、それは機能します。例えば:

var outer=function()
{
    this.inner=function()
    {
    alert("inner");
    }   
}
var outer=new outer; 

function start()
{   
// this works
outer.inner();  
}

私が見つけたすべての例は、関数内の関数のみを示しています。

独自の関数ライブラリを作成できるようにしたい。それらにアクセスする簡単な方法で、例えば:

MyLib.SubLib.SubLib2.function
MyLib.SubLib.SubLib2.property

この問題に関するヘルプは大歓迎です。プロトタイプを学習して使用する必要がありますか?

4

1 に答える 1

3

まず、やり方は次のとおりです。

var outer = function() {
    this.inner = {
        innermost: function() {
            alert("innermost");
        }
    }
}
var outer = new outer;
outer.inner.innermost();

あなたがしたように機能しなかった理由は、関数を定義しているためですinner-関数もそうouter.innerです。var inner = new (outer.inner)();実行してから呼び出すこともできますが、それはinner.innermost();明らかに醜く、望んでいるものではありません。

于 2013-01-22T01:34:47.723 に答える