繁体   English   中英

Javascript从外部访问内部函数

[英]Javascript accessing inner function from outside

我有以下json对象

{
 ....
 ....
 data: function() {
    var x = 10;
    function isBig() {
        return x>6;
    }
    return x;
 }
}

我希望isBig成为数据内部的函数。

当我调用data.isBig我变得undefineddata.isBig()给我一个错误,指出isBig不是函数。

首先,这不是JSON。 它是一个对象。 当前,您的对象的结构方式isBig只能从内部data访问。 如果要访问外部data ,最简单的方法是使其成为外部对象的属性:

{
    data: function()
    {
        var x = 10;
        return x;
    }
    isBig: function(x)
    {
        return x > 6;
    }
}

如果您不想这样做,那么可以选择以下替代方法:

{
    data: function()
    {
        var x = 10;
        this.isBig = function(x)
        {
            return x > 6;
        }
        return x;
    }
}

调用data()正常工作(返回10),而调用new data()返回具有属性isBig的对象,该属性对应于该函数。 这使您可以执行以下操作:

new myObj.data().isBig()

 obj = { data: function(){ var x = 10; return this.isBig(x); }, isBig: function(x){ return x > 6; } }; 

而且,如果您想重现该功能,但有用的话,最好用构造器添加该点。

 f = { isSmall: function(){}, isBig: function(x){ return x > 6; } }; obj = { data: function(){ var x = 10; return this.isBig(x); }, isBig: f.isBig }; obj.data(); obj.isBig(2); f.isBig(2); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM