Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/452.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript从函数中获取内部对象_Javascript_Javascript Objects - Fatal编程技术网

javascript从函数中获取内部对象

javascript从函数中获取内部对象,javascript,javascript-objects,Javascript,Javascript Objects,我有一个javascript函数 var fn = function(){ var obj = {result: true}; return obj.result; }; 我可以访问该函数,但我需要获取内部的obj。有办法吗 编辑:多亏了下面的答案,我终于想出了一个解决办法。 的答案是最接近的,因此我将其标记为解决方案 var f2 = function fn(){ fn.obj = {result: true}; return fn.obj.re

我有一个javascript函数

 var fn = function(){

   var obj = {result: true};

   return obj.result;    
};
我可以访问该函数,但我需要获取内部的
obj
。有办法吗


编辑:多亏了下面的答案,我终于想出了一个解决办法。 的答案是最接近的,因此我将其标记为解决方案

 var f2 = function fn(){

   fn.obj = {result: true};

   return fn.obj.result;    
};
此函数的客户端可以按如下方式使用它:-

var myFunction=f2

但必须调用该函数才能访问内部变量

myFunction()

在那之后,你可以做以下事情

console.log(myfunction.obj)


这似乎奏效了。我会,但是,我想知道这是否是一种好的做法。

您无法访问函数范围外的内部对象。

您无法访问函数范围外的内部对象。

您无法访问函数范围外的内部对象。

您无法访问函数范围外的内部对象函数的属性。

公开后,您可以访问
obj

function fn() {
    fn.obj = { result: true };
    return fn.obj.result;
}
console.log(fn());
console.log(fn.obj.result);

当您公开obj时,您可以访问它

function fn() {
    fn.obj = { result: true };
    return fn.obj.result;
}
console.log(fn());
console.log(fn.obj.result);

当您公开obj时,您可以访问它

function fn() {
    fn.obj = { result: true };
    return fn.obj.result;
}
console.log(fn());
console.log(fn.obj.result);

当您公开obj时,您可以访问它

function fn() {
    fn.obj = { result: true };
    return fn.obj.result;
}
console.log(fn());
console.log(fn.obj.result);

您能否
返回obj
或该函数是否用作模块(与IIFE一起使用)?如果是后者,那么不是,这是JS等价于私有访问。也许这是一个更好的选择,作为一个新问题中的良好实践问题。您能否
返回obj
,或者该函数是否用作模块(使用IIFE)?如果是后者,那么不是,这是JS等价于私有访问。也许这是一个更好的选择,作为一个新问题中的良好实践问题。您能否
返回obj
,或者该函数是否用作模块(使用IIFE)?如果是后者,那么不是,这是JS等价于私有访问。也许这是一个更好的选择,作为一个新问题中的良好实践问题。您能否
返回obj
,或者该函数是否用作模块(使用IIFE)?如果是后者,那么不是,这是JS与私有访问的等价物。也许这是一个更好的选择,作为一个新问题中的良好实践问题。