Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/410.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,在不修改函数测试本身的情况下,是否可以从此对象获取私有变量值 是否可以以某种方式扩展对象/函数测试以获取变量值 在不修改函数测试本身的情况下,是否可以从此对象获取私有变量值 没有 还要注意的是,在调用Test之前,值根本不存在,每次调用Test时都会创建一个不同的值。在这两种情况下,除非测试中有一个未显示的闭包,否则当测试返回时,变量将消失 你最新的问题是:相同的答案。值仅在调用测试期间存在。它并没有保存在任何地方,也并没有任何闭包覆盖它,所以一旦测试返回,它就会消失 在不修改函数测试本身的情况

在不修改函数测试本身的情况下,是否可以从此对象获取私有变量值

是否可以以某种方式扩展对象/函数测试以获取变量值

在不修改函数测试本身的情况下,是否可以从此对象获取私有变量值

没有

还要注意的是,在调用Test之前,值根本不存在,每次调用Test时都会创建一个不同的值。在这两种情况下,除非测试中有一个未显示的闭包,否则当测试返回时,变量将消失

你最新的问题是:相同的答案。值仅在调用测试期间存在。它并没有保存在任何地方,也并没有任何闭包覆盖它,所以一旦测试返回,它就会消失

在不修改函数测试本身的情况下,是否可以从此对象获取私有变量值

没有

还要注意的是,在调用Test之前,值根本不存在,每次调用Test时都会创建一个不同的值。在这两种情况下,除非测试中有一个未显示的闭包,否则当测试返回时,变量将消失


你最新的问题是:相同的答案。值仅在调用测试期间存在。它没有保存在任何地方,也没有任何闭包,所以测试返回后它就会消失。

哈哈,这太傻了-请不要这样做!但总有办法;D

document.getElementById'result'.innerHTML=Test.toString.replacefunction测试{\n var value=,.replace;\n}


哈哈,这太傻了-请不要这样做!但总有办法;D

document.getElementById'result'.innerHTML=Test.toString.replacefunction测试{\n var value=,.replace;\n}


那么为什么我们应该称它为私有变量呢?如果你需要私有变量,那么可以创建一个getter或setter函数。如果你需要私有变量,那么为什么我们应该称它为私有变量呢?如果你需要私有变量,那么可以创建一个getter或setter函数。那么,在对象测试之后是否可以添加一个新方法呢是否已启动/创建?@clarkk:否。首先,让我们澄清一点:虽然Test是一个对象,因为函数是JavaScript中的对象,但它不是您想要的对象。当您执行新测试时,您正在考虑由new创建的对象。同样,一旦测试返回,值就不再存在。您必须添加一个结束值的方法,这只能通过修改测试函数来完成。如果您要修改Test,用value属性this.value=14;替换value变量会更简单;。那么,在启动/创建对象测试之后,是否可以添加一个新方法?@clarkk:不。首先,让我们澄清一下:虽然测试是一个对象,因为函数是JavaScript中的对象,但它不是您所考虑的对象。当您执行新测试时,您正在考虑由new创建的对象。同样,一旦测试返回,值就不再存在。您必须添加一个结束值的方法,这只能通过修改测试函数来完成。如果您要修改Test,用value属性this.value=14;替换value变量会更简单;。
function Module(){
    this.get = function(){
        return value;
    }
}

function Test(){
    Module.call(this);
    var value = 14;
}

Test.prototype = Object.create(Module.prototype);
Test.prototype.constructor = Test;

var T = new Test();
T.get();