首页
学习
活动
专区
圈层
工具
发布

WinJS枚举
EN

Stack Overflow用户
提问于 2014-02-19 09:28:58
回答 2查看 264关注 0票数 1

如何在WinJS中进行枚举?

例如,我试着做一个这样的类:

代码语言:javascript
复制
(function () {
"use strict";

var TaskEnum = WinJS.Class.define(
null,
{},
// The set of static members.
{
    SUPERVISION: 1,
    DIG: 2,
    MAP: 3,
});


var Task = new TaskEnum();

WinJS.Namespace.define("ENUMS", {
    TASK: {
        get: function () {
            return Task;
        }
    }
});


})();

但是当我调用ENUMS.TASK.DIG时,DIG是未定义的。

我甚至试过这样做:

代码语言:javascript
复制
WinJS.Namespace.define("ENUMS", {
    TASK:  { SUPERVISION: 1, DIG: 2, MAP: 3, }
});

但是,当我调用ENUMS.TASK.DIG时,DIG仍未定义。

Namespace.define似乎不是以这种方式工作吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-02-19 17:48:32

哦,如果我让你准确的话,你想用JavaScript来定义JavaScript吗?对吧?对于这种情况,我不认为它是否在Windows Store App上完成,但我有两个建议作为我的答案:

1)使用C#作为运行时组件来执行此操作,方法是在c#中定义一个函数并简单地在JavaScript上调用它。

参见,在C#中创建一个简单的组件。

2) JavaScript中的枚举类型

或见:WinJS.UI Namespace

http://207.46.99.208/pl-pl/library/windows/apps/br229782#enums_section

票数 1
EN

Stack Overflow用户

发布于 2014-02-19 14:24:45

我可能不明白您希望从Namespace定义中得到什么,但不只是使用核心JavaScript?

代码语言:javascript
复制
window.ENUMS = {
    TASK: {
        SUPERVISION: 1,
        DIG: 2,
        MAP: 3
    }
};

然后像你想要的那样使用它:

代码语言:javascript
复制
callSomeFunction(ENUMS.TASK.DIG);

请注意,如果您可以限制用户使用IE11 (在Win8应用程序中不太困难),那么您也可以通过const使用JavaScript常数

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21876173

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档