Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.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 在oop方法中更改子函数中的全局变量_Javascript_Oop_Global Variables - Fatal编程技术网

Javascript 在oop方法中更改子函数中的全局变量

Javascript 在oop方法中更改子函数中的全局变量,javascript,oop,global-variables,Javascript,Oop,Global Variables,我在代码中定义和更改变量时遇到问题。我尝试使用oop方法,因此我设置了一个新文件,其中包含特定的函数集。在这个集合中,我想定义一个全局变量,它的值可以在后续函数中更改,然后根据变量的新值执行某些代码块。但是,我遇到了一个问题,即仅更改相应函数中变量的值,而新值无法在外部进行评估以进行进一步处理。有什么建议吗 非常感谢 var functionset = { x : "", function1 : function(){ function(){ // some code

我在代码中定义和更改变量时遇到问题。我尝试使用oop方法,因此我设置了一个新文件,其中包含特定的函数集。在这个集合中,我想定义一个全局变量,它的值可以在后续函数中更改,然后根据变量的新值执行某些代码块。但是,我遇到了一个问题,即仅更改相应函数中变量的值,而新值无法在外部进行评估以进行进一步处理。有什么建议吗

非常感谢

var functionset = {
x : "",

function1 : function(){
    function(){
        // some code
        function(){
            // some code
            function(){
                x = "new value";
            }
        }
        if(x == "new value"){
            // do something
        } else if(x =="different value"){
            // do something else
        }
    }
},  

}

这些是多个嵌套函数吗?如果是这样的话,那更多的是在函数方面,而不是在面向对象方面。如果你给出一个真实的例子,说明你试图用这个模型实现什么,那会有所帮助。
x
看起来像一个属性,而不是一个
var
可操作的属性。如果名称空间是静态的,则可以按名称空间进行访问。否则,您必须考虑<代码> > <代码>或其他引用引用的方法。x不是全局的,它是“代码>函数集< /代码>的属性,您需要使用<代码>函数集.x=0 < /代码>。您有一个函数(<代码>函数集。函数1>代码>),定义如下:<代码>函数()({函数){{}} <代码>。调用
functionset.function1
没有任何作用。当您调用它时,只会在函数调用的范围内创建一个函数。但是定义函数并不意味着调用/调用/运行该函数。新创建的函数没有被调用、返回或分配给变量(这可能意味着以后可以调用它)。就像这样写:
函数threePlusSeven(){3+7;}
threePlusSeven
不返回任何内容;您需要
返回3+7