Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/364.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/2/github/3.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_Jquery_Object - Fatal编程技术网

Javascript 为什么可以';我不能把这些变量放在全局范围内吗?它只在本地有效。

Javascript 为什么可以';我不能把这些变量放在全局范围内吗?它只在本地有效。,javascript,jquery,object,Javascript,Jquery,Object,下面的代码将使用FirstName编写LastName是X岁的。但是,如果我想在单击按钮时拉出jquery变量val()变量并使它们成为全局变量,那么它就不起作用了。我不知道为什么 function Household (firstName, lastName, age){ var _list = { "_fname": firstName, "_lname": lastName, "_age": age }; this.addPerson =

下面的代码将使用FirstName编写LastName是X岁的。但是,如果我想在单击按钮时拉出jquery变量val()变量并使它们成为全局变量,那么它就不起作用了。我不知道为什么

function Household (firstName, lastName, age){


  var _list = {
      "_fname": firstName,
      "_lname": lastName,
      "_age": age
  };

this.addPerson = function () {

    var writeIn = _list._fname + " " + _list._lname + " is " + _list._age + " years old.";

    return writeIn;
 }

}



$('#btnSub').click(function(){

  var _getFName = $('#enterFName').val();
  var _getLName = $('#enterLName').val();
  var _getAge = $('#enterAge').val();

  var nuHouse = new Household (_getFName, _getLName, _getAge);

  var newNuHouse = nuHouse.addPerson();

  $('#insertAnswer').html(newNuHouse);

});
为什么这样不行?我想使这些值成为全局值,这样我就可以通过单击其他按钮来访问它们

function Household (firstName, lastName, age){


var _list = {
    "_fname": firstName,
    "_lname": lastName,
    "_age": age
};

this.addPerson = function () {

    var writeIn = _list._fname + " " + _list._lname + " is " + _list._age + " years old.";

    return writeIn;
}

}

var _getFName = $('#enterFName').val();
var _getLName = $('#enterLName').val();
var _getAge = $('#enterAge').val();

var nuHouse = new Household (_getFName, _getLName, _getAge);


$('#btnSub').click(function(){

   var newNuHouse = nuHouse.addPerson();

   $('#insertAnswer').html(newNuHouse);

});

提前谢谢你

底部代码不起作用,因为您在脚本执行时获取值,而不是在单击按钮时获取值


您可以继续全局声明变量,但将赋值移动到事件侦听器,但是减少全局变量的数量通常是有益的。如果您告诉我们您打算如何使用这些值,我们可能会建议更好的方法。

您需要在事件单击时更新这些变量的值。 因为在第一次页面加载时,这些输入没有任何值

var _getFName;
var _getLName;
var _getAge;

var nuHouse;


$('#btnSub').click(function(){
   _getFName = $('#enterFName').val();
   _getLName = $('#enterLName').val();
   _getAge = $('#enterAge').val();

   nuHouse = new Household (_getFName, _getLName, _getAge);
   var newNuHouse = nuHouse.addPerson();

   $('#insertAnswer').html(newNuHouse);

});

无法复制。请参阅此演示