首页 > 解决方案 > Javascript 在带有参数的函数内声明全局变量

问题描述

问题:我想在函数内部创建一个变量作为全局变量

这有效:

var x;
function myFunction() {
    x = 999;
}
myFunction();
console.log(x);

但是这个在尝试从 API Result 声明一个全局变量时不起作用

webOS.service.request(url, {
    onSuccess: function (data) {
        var serial = data.idList[0].idValue;
        var udid = serial; // This is the variable that I want
        callback(udid); // Trying to get this udid out of this API call
},
});

var sn;
function callback(udid) {
    sn = udid; // I want this as my global variable
}
callback(udid); // produces an error which says udid not defined
console.log(sn); // undefined

如何将 var sn 作为全局变量?提前致谢

标签: javascriptfunctionapicallbackglobal-variables

解决方案


这是因为udid没有在你调用的范围内定义callback- 你callback在你的onSuccess函数中调用,所以你不需要再次调用它。您还需要将您的功能console.log放入您的callback函数中:

webOS.service.request(url, {
    onSuccess: function (data) {
        var serial = data.idList[0].idValue;
        var udid = serial; // This is the variable that I want
        callback(udid); // Trying to get this udid out of this API call
    },
});
var sn;
function callback(udid) {
    sn = udid; // I want this as my global variable
    console.log(sn);
}

推荐阅读