将变量绑定到对象属性

时间:2018-11-17 16:23:45

标签: javascript

我正在将全局变量更改为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,
}

1 个答案:

答案 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/