我正在将全局变量更改为HTML中输入字段的值。然后,我尝试采用此值并在另一个变量中使用它。但是,这不起作用,在控制台中,值会更改,但变量opts内不会更改。如何使javascript成功传递此信息?这是我运行它的jsfiddle的链接。我正在尝试更改此示例中的光线数量:https://jsfiddle.net/9vdpt81n/
var loadValue = 1;
function val() {
newValue = document.getElementById("input").value;
loadValue = newValue;
}
val(opts);
var opts = {
rays: loadValue,
radiantSpan: loadValue,
}
答案 0 :(得分:2)
您可以使用getter
将函数绑定到Object属性,并在每次查找该属性时使用该函数的返回值。
var opts = {
get rays(){
return loadValue;
},
get radiantSpan(){
return loadValue;
}
}
var loadValue = 1;
var opts = {
get rays(){
return loadValue;
},
get radiantSpan(){
return loadValue;
}
}
function showOpts(){
console.log('opts.rays:', opts.rays);
console.log('opts.radiantSpan:', opts.radiantSpan);
}
showOpts();
loadValue++;
showOpts();
JSFiddle:http://jsfiddle.net/af0mnywL/
或者,您可以在输入的更改事件上设置对象的光线和radiantSpan属性的值。
function val() {
var newValue = document.getElementById("input").value;
loadValue = newValue;
opts.rays = opts.radiantSpan = loadValue;
}
JSFiddle:http://jsfiddle.net/9hwfap3j/