[英]JS: Why is my variable being assigned a function instead of calling the function?
[英]Why my variable not getting assigned value from JS function?
** 放置我的實際 JS 片段”我在一個 JS 文件中有一個小的 JS function,如下所示
function interest(customerRef) {
try {
var customerInterest = "";
var baseUrl="https://test/"
var url = baseUrl+customerRef
var username = "username";
var password = "password";
var request = new XMLHttpRequest();
request.open("GET", url);
request.setRequestHeader("Authorization", "Basic " + btoa(username+":"+password))
request.send()
request.onload=()=>
{
if(request.status==200)
{
var guestJson = JSON.parse(request.response);
var sessions = guestJson.sessions || [];
var interest = sessions.filter(session => session.events)
.flatMap(session => session.events)
.filter(event => event.type === "SEARCH")
.map(event => event.arbitraryData.interest)[0];
customerInterest = interest;
alert("---"+customerInterest);
}
else
{
console.log(`error ${request.status} ${request.statusText}`)
}
}
alert(customerInterest);
return customerInterest;
}
catch (error) {
console.error(error);
}
}
我在我的 HTML 文件中調用上述 function 如下
customerRef = "6a789727"
var interest1 = "";
interest1 = interest(customerRef);
console.log(interest1);
在返回之前,我在“ console.log(interest1) ”或“ alert(customerInterest); ”中沒有得到任何值。 但是我在“ alert("---"+customerInterest); ”中得到了預期值
不,你會得到一個錯誤,而不僅僅是undefined
。
跑步
var test = "";
test = test()
console.log(test)
會產生一個
Uncaught TypeError: test is not a function
在第 2 行,因為您剛剛將test
定義為字符串 ( ""
) 而不是 function 您可以調用。
相反,請嘗試以下操作:
function greet() {
return "Hi";
}
var test = "";
test = greet();
console.log(test);
如果您在控制台中對此進行評估,這將打印出來
Hi
undefined
; 后者undefined
來自console.log()
的返回值;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.