【问题标题】:How to export variables from functions in Javascript?如何从 Javascript 中的函数中导出变量?
【发布时间】:2015-12-24 19:32:28
【问题描述】:

我想知道如何从函数内部导出变量以用于其他函数,我使用了以下代码:

但是在最新的函数中,我想从另一个函数中添加一个名为 nombre 的变量,但我做不到,我想过向一个函数添加几个值,但最后,我只能想象一个函数无限的参数,如果可能的话。

提前致谢! 克里斯托瓦尔。

<script>
//Empieza el script justo aquí
//Aquí definimos la función de cómo queremos llamar a nuestro personaje
//La función nombreintroducido recoge el valor de la variable nombre y la usa más adelante
  var nombrepersonaje = function() {
    var nombre = prompt("Como quieres que se llame tu personaje");
	nombreintroducido(nombre);
  }

//Aquí definimos que si el nombre tiene menos de tres carácteres, se repite la función nombrepersonaje
//Si se pulsa cancelar, se terminará el juego
//Si introduces algún nombre de personaje que sea válido, se abrirá un mensaje emergente que mostrará el nombre introducido
var nombreintroducido = function (nombre){
if (nombre === '') {
  confirm('Tu nombre de personaje ha de tener mas de 3 caracteres');
  nombrepersonaje();
} else if (nombre === null){
confirm('No has introducido ningun nombre de personaje, el juego terminara ahora')
}
else{
  confirm('Tu nombre de personaje es' + ' ' + nombre)

  }
};

var eligeclase = function(){
var clase = prompt("Que clase quieres elegir: Guerrero o Mago")
claseescogida(clase);
}

var claseescogida = function (clase){
if (clase === 'Guerrero'){
confirm('Has elegido la clase Guerrero: 10 Fuerza y 5 Inteligencia');
confirmaclase(clase);
}
else if (clase === 'Mago') {
confirm ('Has escogido la clase mago: 10 Inteligencia y 5 Fuerza');
confirmaclase(clase);
}
else {
confirm ('Tienes que escribir exactamente Guerrero o Mago');
eligeclase();
}};

var confirmaclase = function(clase) {
confirm('Tu clase es finalmente ' + clase + ' ... y tu nombre es');
}


//Se podría decir que el minijuego empezaría aquí, ya que lo anterior son funciones que definimos
nombrepersonaje();
eligeclase();



//Termina el script justo aquí
 </script>

【问题讨论】:

  • 只需使用全局变量,以便在任何地方都可以引用和更改它们
  • 我该怎么做呢?如何使用全局变量?我只是在另一个站点做一个课程,我前几天开始学习,不知道为什么我被评为-1,这里没有新手的地方? :( 变量是由函数中的提示定义的,所以如果写在函数中并在函数中询问,它不能是全局的,对吧?那怎么办?

标签: javascript function import export


【解决方案1】:

你可以通过两种方式做到这一点:

  1. 全局声明 var 以便可以从 任何地方(在java脚本内部或外部)就像..var nombre; 在 javascript 顶部声明,并且可以在其中初始化和使用 一个 javascript 和其他 java 脚本。你只需要 导入源js。
  2. 创建一个返回 var 本身的函数。像。

    var myFunction = function(){return nombre;}

    当您需要nombre 变量时,只需将函数调用为var newNombre = myFunction();

【讨论】:

  • 如果返回的是var本身,以后调用这个变量时,是要调用变量还是函数?我只是在尝试这个,但我得到的变量是未定义的。
【解决方案2】:

你可以像这样全局定义一个变量(例如在 variables.js 中):

var myNombre;

现在每当您想提示用户时,您可以将输入分配给myNombre

function initMyNombre () {
    // assign from input
    myNombre = prompt("Enter a nombre");
}

您的变量现在保存输入并保留它,直到您重新分配它或关闭浏览器选项卡。

然后,也许在你的 index.html 中,你可以使用 myNombre:

function anyFunction () {
    // x now has the value of myNombre
    var x = myNombre;
}

请注意,您需要在 html 文档中包含 variables.js 并使用 &lt;script src="directory/variables.js"&gt;&lt;/script&gt;。也看看This W3schools Tutorial。尽管 W3schools 不是经验丰富的程序员的最佳实践,但它可以为您提供很好的介绍。

【讨论】:

    猜你喜欢
    • 2019-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-18
    相关资源
    最近更新 更多