Javascript从外部访问内部函数
我有以下json对象 我希望Javascript从外部访问内部函数,javascript,function,Javascript,Function,我有以下json对象 我希望isBig成为数据内部的函数 当我调用data.isBig时,我得到了未定义的和数据。isBig()给我一个错误,说isBig不是函数 首先,这不是JSON。它是一个物体。 按照当前对象的结构方式,isBig只能从数据内部访问。如果要在数据外部访问它,最简单的方法是将其作为外部对象的属性: { data: function() { var x = 10; return x; } isBig: functi
isBig
成为数据内部的函数
当我调用
data.isBig
时,我得到了未定义的和数据。isBig()
给我一个错误,说isBig
不是函数 首先,这不是JSON。它是一个物体。
按照当前对象的结构方式,isBig
只能从数据内部访问。如果要在数据
外部访问它,最简单的方法是将其作为外部对象的属性:
{
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),而调用newdata()
返回一个对象,该对象具有与函数对应的属性isBig
。这允许您执行以下操作:
new myObj.data().isBig()
首先,这不是JSON。它是一个物体。
按照当前对象的结构方式,isBig
只能从数据内部访问。如果要在数据
外部访问它,最简单的方法是将其作为外部对象的属性:
{
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),而调用newdata()
返回一个对象,该对象具有与函数对应的属性isBig
。这允许您执行以下操作:
new myObj.data().isBig()
obj={
数据:函数(){
var x=10;
返回这个。isBig(x);
},
isBig:函数(x){
返回x>6;
}
};代码>
obj={
数据:函数(){
var x=10;
返回这个。isBig(x);
},
isBig:函数(x){
返回x>6;
}
};代码>这样不行。不可能。您指的不是json字符串。它是一个简单的javascript对象。这个对象有一个data
属性,这是一个您想要调用的函数。请阅读javascriptJSON中的“scope”是如何工作的。JSON是一种数据传输格式,它肯定不包含函数……这就是函数scope的工作方式。它是如何将数据封装为私有的。您可以通过将私有数据返回到更高的作用域来公开私有数据—这样做行不通。不可能。您指的不是json字符串。它是一个简单的javascript对象。这个对象有一个data
属性,这是一个您想要调用的函数。请阅读javascriptJSON中的“scope”是如何工作的。JSON是一种数据传输格式,它肯定不包含函数……这就是函数scope的工作方式。它是如何将数据封装为私有的。您可以通过将私有数据返回到更高的作用域来公开私有数据。此代码是否经过测试?我不能让它工作。我做错什么了吗@Andrew你忘记了第二个关键字的new
。@stybl如果你不介意我问的话。。。为什么我的代码在这里不起作用?这个代码经过测试了吗?我不能让它工作。我做错什么了吗@Andrew你忘记了第二个关键字的new
。@stybl如果你不介意我问的话。。。为什么我的代码在这里不起作用?