JS函数在该函数内的函数中等等

时间:2013-01-22 01:31:57

标签: javascript function nested depth

好的,我在过去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

对此事的任何帮助将不胜感激。我是否需要学习和使用原型?

1 个答案:

答案 0 :(得分: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();,但这显然是丑陋而不是您想要的。