首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >变量内存分配是如何在javascript中的函数对象中进行的?

变量内存分配是如何在javascript中的函数对象中进行的?
EN

Stack Overflow用户
提问于 2017-08-13 18:54:01
回答 1查看 226关注 0票数 0

变量的作用域、初始化以及在javascript函数外部和内部如何使用?我写了以下代码:

代码语言:javascript
运行
复制
<div id="output">
</div>

<script>
var calculator = function()
{
        var x = 5;
        getx = function(){
           return x;
        }
        return { x:x, getx };
}();
document.getElementById("output").innerHTML = calculator.x;
calculator.x=10;
document.getElementById("output").innerHTML += " "+ calculator.x + " "+calculator.getx();
</script>

我读到,在JS执行中,首先扫描代码以查找所有变量声明,然后执行函数。

在计算器对象中定义的变量x是作为其整数的值类型。

getx是嵌套函数,根据闭包,即使在执行getx返回之后,也可以访问变量"x“。

X的第一个输出为expected=5;

X的第二个输出为expected=10; (修改为x)

calculator.getx()的第三个输出为=5;(我无法理解这一点)

"x“是值类型,它在函数范围内也应该有修改的值,第三个输出应该是be=10。这里我遗漏了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-13 19:08:48

代码语言:javascript
运行
复制
calculator.x = 10 

将x添加到函数的属性中。

计算器现在是指对象{ x:x,getx },您正在更改的值不是变量x,而是计算器的属性x。

要访问属性的更改,您需要输出--这个.x

代码语言:javascript
运行
复制
<div id="output">
</div>

<script>
var calculator = function()
{
        var x = 5;
        getx = function(){
           return this.x;
        }
        return { x:x, getx };
}();
document.getElementById("output").innerHTML = calculator.x;
calculator.x=10;
document.getElementById("output").innerHTML += " "+ calculator.x + " "+calculator.getx();
</script>

为了证明它查看了下面的代码,很明显,变量x没有被更改,而是属性正在更改,getx无法访问该属性。

代码语言:javascript
运行
复制
<div id="output">
</div>

<script>
var calculator = function()
{
        var x = 5;
        getx = function(){
           return x;
        }
        setx = function(a){
          x = a;
        }
        return { x:x, getx, setx };
}();
document.getElementById("output").innerHTML = calculator.x;
calculator.setx(10);
document.getElementById("output").innerHTML += " "+ calculator.x + " "+calculator.getx();
</script>

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45663825

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档