Javascript中的范围问题

时间:2018-01-03 07:41:23

标签: javascript

我正在尝试执行以下操作:

var myVariable = {};

function() {
  //Add key/value to myVariable
}

//Using the keys/values of myVariable;

但似乎键/值只能在函数范围内访问。 我应该怎么做才能修改函数内部的变量并且能够在函数之外使用它?是否必须使用全局变量?

编辑:将声明从myVariable = []更改为{}解决了这个问题。声明和键/值的使用之间存在语法错误。

3 个答案:

答案 0 :(得分:-2)

首先,您的代码包含一些语法错误。 您可以在函数内更改myVariable的值,因为它是一个全局变量,可供函数访问。

您遇到的问题可能出在您调用该功能的地方。



var myVariable = {};

function changeMyVariable() {
  myVariable.mykey = 'xyz';
}

console.log(myVariable);//before calling function
changeMyVariable();
console.log(myVariable);//after calling function




答案 1 :(得分:-2)

var myArray = []; // Global empty array.

function myFunction() {
  myArray.push({aKey:"aValue"}); // Add a key and a value to the array.
  console.log(myArray); // Print the array in the console.
}

myFunction(); // Call the function, otherwise nothing will happen.

答案 2 :(得分:-2)

您能否添加一个您想要完成的示例? 你在问题中解释的是正确的,并且是范围在javascript中的工作方式。

例如:

var myVariable = [];

console.log(myVariable); // length = 0

function updateVar() {
  myVariable[0] = 1;//Add key/value to myVariable
} 

updateVar(); // call update

console.log(myVariable);  // length = 1

正如您在调用updateVar函数后看到的那样,您的数组中有1个项目。