繁体   English   中英

从JavaScript函数访问变量?

[英]accessing variables from functions in javascript?

我怎么能访问一个在函数中初始化的变量,但是main.name给了我一个空值,我知道该值是在函数或main中初始化的,但是在feed中却没有! 这是我的例子

var main = Titanium.UI.createWindow();

var feed = Titanium.UI.createWindow({

    title:'feeds',
    url:'main_windows/feeds.js',
    barImage:'bg_content.gif',
    username:main.name //im trying too access this varibale from main.

});

Ti.App.addEventListener('grantEntrance',function(event)
{

    main.title ='Welcome'+event.username;
    main.url = 'main_windows/main.js';
    main.name = event.username; // this is where the varibale is intialised
    main.email = event.email;
    main.barImage='bg_content.gif';

});

抱歉,如果这似乎是一个愚蠢的问题,但我是javascript的新手,请告诉我删除它。 我想知道您是否可以将其变成一个小问题。

您正在尝试获取尚未初始化的变量。 由于您是在事件的回调中分配main.name的,因此只有在触发该事件后才会对其进行初始化。 我不确定您的应用程序的逻辑是什么,但是我想您能够在此回调中初始化window:

Ti.App.addEventListener('grantEntrance',function(event) {
    main.title ='Welcome'+event.username;
    main.url = 'main_windows/main.js';
    main.name = event.username;
    main.email = event.email;
    main.barImage='bg_content.gif';

    var feed = Titanium.UI.createWindow({
        title:'feeds',
        url:'main_windows/feeds.js',
        barImage:'bg_content.gif',
        username:main.name
    });
});

或者,只需在回调内设置窗口的username属性:

var feed = Titanium.UI.createWindow({
    title:'feeds',
    url:'main_windows/feeds.js',
    barImage:'bg_content.gif',
});

Ti.App.addEventListener('grantEntrance',function(event) {
    main.title ='Welcome'+event.username;
    main.url = 'main_windows/main.js';
    main.name = event.username;
    main.email = event.email;
    main.barImage='bg_content.gif';

    feed.username = main.name
});

同样,从个人经验来看:Titanium不是“增强js能力”的最佳方法:某些方法异步运行,这会引起奇怪的问题。 因此,如果您是新手,可能会感到很痛苦。

无论如何,祝你好运:)

暂无
暂无

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

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