无法理解这个javascript代码

时间:2012-04-06 08:09:46

标签: javascript appcelerator

我是javascript的新手,我必须了解appcelerator项目。在appcelerator中我们需要用java脚本编写代码。

var winForm = (function() {

    var API = {};

    API.list = [
        {
            title:'title1', hasChild:true, color:'#9B0B0B',font:'font'
        },
        {
            title:'title2', hasChild:true, color:'#9B0B0B',font:'font'
        },
        {
            title:'title3', hasChild:true, color:'#9B0B0B',font:'font'
        }
    ];//end winList

    return API;
})(); //end 
module.exports = winForm;
  1. 这是什么类型的功能?
  2. 这是什么'{}'初始化?
  3. 我们在API.list中做了什么?
  4. 如何调用此功能和列表。
  5. 这是什么出口?
  6. 很抱歉在一篇文章中提出了这么多问题。

4 个答案:

答案 0 :(得分:2)

  1. 这是一个声明为创建范围的匿名函数。
  2. 它会创建一个空对象。它没有属性,但已定义。
  3. list被设置为由3个对象组成的数组(即[ ... ]表示法)。每个对象都有4个属性,titlehasChildcolorfont,以及相应的值。
  4. 您无法显式调用此函数,它已声明,运行,结果存储在变量winForm中(然后存储在module.exports中)。
  5. module对象上的某些属性,无论是什么。
  6. 您应该花时间详细了解javascript的工作原理。我建议http://javascript.info/作为一个很好的提升。

答案 1 :(得分:2)

答案 2 :(得分:1)

1)该函数是variable = (function() {}())

形式的即时匿名自执行表达式函数

2)API被初始化为一个对象(或哈希表),其范围在该函数内

3)API.list是一个对象数组,每个对象包含四对key:value

4)函数是自行执行的,因此当您返回API对象时,将其分配给winForm变量

5)winForm是返回的对象,winForm.list是数组 由于您分配了module.exports = winForm;,因此module.exports.list是您的数组

答案 3 :(得分:0)

1.This function is called as anonymous function or rather you can say self executing function

2.It is creating an empty object 

3.API.list is array of the object .. To define array [ ] these brackets are used and for object { }.
4. You are using the return function .. and the result is getting stored in module.export
5. Export is the method name .. There has to be a method object define somewhere in js . you can you this method to get your result
as in the winForm  function  and used for some purpose