[英]Javascript accessing inner function from outside
我有以下json对象
{
....
....
data: function() {
var x = 10;
function isBig() {
return x>6;
}
return x;
}
}
我希望isBig
成为数据内部的函数。
当我调用data.isBig
我变得undefined
而data.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.