简体   繁体   English

访问外部变量

[英]Accessing variable outside function

I have a javascript code with functions: 我有一个具有功能的javascript代码:

function convertTime()
function loadZive()

Let's say that I have the following code: 假设我有以下代码:

function convertTime(){
    alert(exampleVariable);
    };
function loadZive(){
    var exampleVariable = 3;
    convertTime();
    };

It looks like my convertTime() function can't access exampleVariable . 看来我的convertTime()函数无法访问exampleVariable Is there any workaround? 有什么解决方法吗?

Here is whole code: 这是完整的代码:

function convertTime(publishedDate){
    alert(publishedDate);
    var date = publishedDate;
    var publishedDay = date.toLocaleDateString();
    var publishedHour = date.getHours();            //nemozno pouzit toLocaleTimeString (cielovy format ma byt bez sekund)
    if (publishedHour < 10){
        publishedHour = "0" + publishedHour;
    };
    var publishedMinute = date.getMinutes();        //nacitanie hodin a minut
    if (publishedMinute < 10){
        publishedMinute = "0" + publishedMinute;
    };
    var publishedTime = publishedHour +":"+ publishedMinute;    //ich nasledne spojenie do casoveho formatu HH:MM
    var publishedDateConverted = publishedDay +", "+ publishedTime;
};
function loadZive(publishedDateConverted){
google.load("feeds", "1");  
    function initialize() {
        var feed = new google.feeds.Feed("http://www.zive.sk/rss/sc-47/default.aspx");
        feed.setNumEntries(window.localStorage.getItem("entriesNumber"));
        feed.load(function(result) {
            if (!result.error) {
                var feedlist = document.getElementById("feedZive");
                for (var i = 0; i < result.feed.entries.length; i++) {
                    var li = document.createElement("li");
                    var entry = result.feed.entries[i];
                    var A = document.createElement("A");
                    var descriptionSettings = window.localStorage.getItem("descriptionSettings");
                    if (descriptionSettings=="true"){
                        var h3 = document.createElement("h3");
                        var p = document.createElement("p");
                        var pDate = document.createElement("p");
                        pDate.setAttribute("class","ui-li-aside");
                        var publishedDate = new Date(entry.publishedDate);
                        convertTime();
                        pDate.appendChild(document.createTextNode(publishedDateConverted));
                        h3.appendChild(document.createTextNode(entry.title));
                        p.appendChild(document.createTextNode(entry.content));
                        A.setAttribute("href",entry.link);
                        A.appendChild(h3);
                        A.appendChild(p);
                        A.appendChild(pDate);
                        }
                    else{
                        A.setAttribute("href",entry.link);
                        A.appendChild(document.createTextNode(entry.title));
                    };
                    li.appendChild(A);
                    feedlist.appendChild(li);
                }
                $("#feedZive").listview("refresh");
            }
        });
    }
    google.setOnLoadCallback(initialize);   
};

Alert result is Undefined. 警报结果未定义。 PS : exampleVariable isn't defined by the user; PSexampleVariable不是由用户定义的; it is loaded from a feed, so I cannot define it before the convertTime() function. 它是从提要中加载的,所以我不能在convertTime()函数之前定义它。

As Danny said, or you can also pass variables this way: 如Danny所说,或者您也可以通过这种方式传递变量:

function convertTime(exampleVariable){
    alert(exampleVariable);
};
function loadZive(){
    var exampleVariable = 3;
    convertTime(exampleVariable);
};

Remove var from loadZive() , this makes the variable local to loadZive() only. loadZive()删除var ,这使得变量仅在loadZive()

Alternatively, pass exampleVariable as a parameter to convertTime() . 或者,将exampleVariable作为参数传递给convertTime()

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM