JavaScript全局变量声明
下面的脚本工作正常,但我需要做一些修改。在每个函数中,我得到不同公式所需的值。然而,我倾向于在不同的函数中复制同一行代码 前JavaScript全局变量声明,javascript,global-variables,variable-declaration,Javascript,Global Variables,Variable Declaration,下面的脚本工作正常,但我需要做一些修改。在每个函数中,我得到不同公式所需的值。然而,我倾向于在不同的函数中复制同一行代码 前 我想一次性声明所有变量,而不仅仅是使用我需要的特定函数。如果我在顶部声明它们,而不是调用它们一次,它们仍然保留原始值,因此如果更改,我需要将该值更新为当前值。如果您喜欢在小提琴中操作,则代码将很难阅读 取而代之的是 var myVars; window.onload=function() { myVars = { 'list_price': documen
我想一次性声明所有变量,而不仅仅是使用我需要的特定函数。如果我在顶部声明它们,而不是调用它们一次,它们仍然保留原始值,因此如果更改,我需要将该值更新为当前值。如果您喜欢在小提琴中操作,则代码将很难阅读 取而代之的是
var myVars;
window.onload=function() {
myVars = {
'list_price': document.getElementById('list_price'),
'negotiated': document.getElementById('negotiated'),
.
.
'lease_payment': document.getElementById('lease_payment')
}
现在你可以做了
var price = myVars.list_price.value;
或者添加一个函数
function getVal(id) {
var val = document.getElementById(id).value;
if (val =="" || isNaN(val)) return 0;
return parsetInt(val,10);
}
现在你可以做了
var price = getVal("list_price");
如果你像在小提琴上那样做,你的代码将很难阅读 取而代之的是
var myVars;
window.onload=function() {
myVars = {
'list_price': document.getElementById('list_price'),
'negotiated': document.getElementById('negotiated'),
.
.
'lease_payment': document.getElementById('lease_payment')
}
现在你可以做了
var price = myVars.list_price.value;
或者添加一个函数
function getVal(id) {
var val = document.getElementById(id).value;
if (val =="" || isNaN(val)) return 0;
return parsetInt(val,10);
}
现在你可以做了
var price = getVal("list_price");
有两种方法可以做到这一点:
change
事件或keyup
事件添加侦听器:
// save initial value
var val = document.getElementById('one').value;
// update the value when input is changed
addEventListener(document.getElementById('one'), 'change', function() {
val = document.getElementById('one').value;
});
console.log(val);
2) 您可以使用始终返回当前值的函数:
var val = function() { return document.getElementById('one').value; };
console.log(val());
2b)如果不喜欢括号,可以定义一个属性,该属性使用上述函数作为getter:
Object.defineProperty(window, 'one', {
get : function() { return document.getElementById('one').value; }
});
console.log(one);
有两种方法可以做到这一点:
change
事件或keyup
事件添加侦听器:
// save initial value
var val = document.getElementById('one').value;
// update the value when input is changed
addEventListener(document.getElementById('one'), 'change', function() {
val = document.getElementById('one').value;
});
console.log(val);
2) 您可以使用始终返回当前值的函数:
var val = function() { return document.getElementById('one').value; };
console.log(val());
2b)如果不喜欢括号,可以定义一个属性,该属性使用上述函数作为getter:
Object.defineProperty(window, 'one', {
get : function() { return document.getElementById('one').value; }
});
console.log(one);
mplungjan的解决方案是一个伟大的解决方案。如果您担心全局变量泄漏到窗口作用域中,请将代码包装在立即调用的函数表达式中,以防止发生这种情况:
(function(){
// code goes here
}());
mplungjan的解决方案是一个伟大的解决方案。如果您担心全局变量泄漏到窗口作用域中,请将代码包装在立即调用的函数表达式中,以防止发生这种情况:
(function(){
// code goes here
}());
我不知道你在问什么。你是在问如何创建全局变量吗?我个人想为元素声明变量,并在需要时获取其值。比如
varv1=document.getElementById('one')代码>和使用likev1.value
我基本上在不同的函数中使用相同的变量值(例如v1=document.getElementById('one').value;),但是我想声明所有的输入值一次,它们使用函数中的变量。我不确定您的要求是什么。你是在问如何创建全局变量吗?我个人想为元素声明变量,并在需要时获取其值。比如varv1=document.getElementById('one')
和use likev1.value
我基本上在不同的函数中使用相同的变量值(例如v1=document.getElementById('one').value;),但是我想声明所有的输入值一次,它们使用函数中的变量,如果输入框中的值发生变化,v1和v2仍然会给出旧值,阅读问题carefully@shadow非常好的一点,尤其是输入会经常变化,因为人们可能希望看到基于新输入值(左侧)的不同结果(右侧)。如果输入框中的值发生变化,v1和v2仍会给出旧值,请阅读问题carefully@shadow很好,,尤其是输入会经常改变,因为人们可能希望看到基于新输入值的不同结果(在右边)(在左边)。所有这一切都很神奇,我喜欢看到不同的解决方案。谢谢你一个小评论,我不得不从“lease\u payment”中删除.value,因为这样调用时它会返回“undefined”:var x4=myVars.lease\u payment.value。你能解释为什么吗?我在那里有一个错误的值。现在移除。请注意,object中最后一项后面缺少逗号。所有这一切都令人惊讶,我喜欢看到不同的解决方案。谢谢你一个小评论,我不得不从“lease\u payment”中删除.value,因为这样调用时它会返回“undefined”:var x4=myVars.lease\u payment.value。你能解释为什么吗?我在那里有一个错误的值。现在移除。请注意,对象中最后一项后面缺少逗号