[英]If I have a variable, assigned to the value of a function call, can that variable be updated if the function call's parameters are changed?
如果我有一個函數,像這樣:
function f(x,y){
return x + y;
}
如果我有參數變量,我想傳遞給f:
var parameter1;
var parameter2;
如果我將此函數調用分配給變量:
var functionCallValue = f(parameter1,parameter2);
如何確保functionCallValue根據我分配給變量parameter1和parameter2的不同值而變化?
functionCallValue
分配了函數f
的結果(返回值)。 (將調用該函數,將計算出的值並將結果移交給您的變量。)因此, functionCallValue
不會自動更新,如果更改參數(這根本沒有意義),則需要使用再次調用該函數。更改的參數。
對於類似自動更新的事情,您需要這樣的關閉:
var asdf = (function(){
var param1 = 1;
var param2 = 2;
var result = param1+param2;
function compute(){
result = param1 + param2;
}
return{
param1:function(x){
param1 = x;
compute();
},
param2:function(x){
param2 = x;
compute();
},
result:function(){
return result;
}
}
})();
console.log(asdf.result()); // logs 3
asdf.param1(3);
console.log(asdf.result()); // logs 5
我想您需要的是關閉 。
var servant = function(x, y) { return x + y; };
var param1 = 40;
var param2 = 2;
var master = function() { return servant(param1, param2) };
var result = master(); // 42.
param1 = 2;
param2 = 40;
var anotherResult = master(); // still 42, because that's really the answer!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.