Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/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 这是将变量设置为私有的正确方法吗_Javascript - Fatal编程技术网

Javascript 这是将变量设置为私有的正确方法吗

Javascript 这是将变量设置为私有的正确方法吗,javascript,Javascript,这是将变量设置为私有的正确方法吗 function test(a, b){ let aa = a let bb = b return { getA: () => { return aa }, getB: () => { return bb } } } 现

这是将变量设置为私有的正确方法吗

function test(a, b){
        let aa = a
        let bb = b
        return {
            getA: () => {
                return aa
            },
            getB: () => {
                return bb
            }
        }
    }
现在我无法直接访问aa和bb。如果我把这个关键字放在变量前面,它会被接受为对象吗?我知道JavaScript中的函数是对象,但它变得更像对象语法。我被所有的JavaScript选项弄糊涂了。似乎在任何事情上都没有约定。 此类型的应用程序:


这两个例子在我看来都一样。总结问题——这些变量的隐私是通过这些方式实现的吗

这些代码块不相等。见下文:

功能测试a,b{ 设aa=a 设bb=b 返回{ getA:=>{ 返回aa }, getB:=>{ 返回bb } } } 设testResult=test1,2; console.logtestResult.aa //错误
console.logaa;读一读JS设计模式,你似乎在尝试创建一个,但还有其他选择。我肯定会接受它。事实上,我正在努力理解在JS中哪些是正确的方法。我知道在不同的情况下可以使用不同的解决方案。只是试着总结一下,小心正确的方法。通常没有正确的方法,只有不同的方法。@Liam是的。就这么说。要明白:我在这里有很多方法可以做这些事情。第二个街区不是私人的。aa的范围是窗口对象哦,我想我现在明白了。如果declare variabl让myVar=newtest1,2,那么它将指向myVar。所以从我的理解来看,这不应该用在不是构造函数的函数中。我走对了吗@Tnc安德烈不,不,只是测试。不要使用任何我不懂的东西:这个可以用@TomaTomov,但是你需要知道是什么。明白了!非常感谢你!第二个例子应该这样调用:让testResult=newtest1,2;。用new关键字调用test将返回一个对象,所有附加到此对象的内容都将属于test而不是window
function test(a, b){
        this.aa = a
        this.bb = b
        return {
            getA: () => {
                return this.aa
            },
            getB: () => {
                return this.bb
            }
        }
    }