为了账号安全,请及时绑定邮箱和手机立即绑定

js中为什么要在声明var变量中创建函数?

js中为什么要在声明var变量中创建函数?

慕仙森 2019-03-05 11:07:03
 var menu = {       // 当前状态    currentState: 'hide',      // 绑定事件    initialize: function() {      var self = this;      self.on("hover", self.transition);    },      // 状态转换    transition: function(event){      switch(this.currentState) {        case "hide":          this.currentState = 'show';          doSomething();          break;        case "show":          this.currentState = 'hide';          doSomething();          break;        default:          console.log('Invalid State!');          break;      }    }    };有三个问题:它在变量中写这个有什么好处呢?currentState: 'hide',initialize: function() {}这样的写法。逗号是代表这个写法属于数组是吗?这个判断是否显示隐藏的代码怎么去执行它?
查看完整描述

4 回答

?
茅侃侃

TA贡献1842条经验 获得超21个赞

  1. 先了解什么是对象

        var menu = {};  // {}表示一个对象,menu就是一个对象

 

   2. JS {}对象的数据格式

        它的数据格式是json,即键值对,使用,分隔,如{a:"vaule1", b : function(){}}

       因此你理解成数组是不对的

 

   3. 怎么执行,根据你现在的代码无法判断

       推测,你在某个时间点,需要绑定事件,如页面加载时,你执行menu.initialize();方法

       根据下面方法

      // 绑定事件    initialize: function() {      var self = this;      self.on("hover", self.transition); // 把hover事件设置成  transition()

                      // 个人觉得 menu对象还少了个on方法

        },

       



查看完整回答
反对 回复 2019-03-27
?
Cats萌萌

TA贡献1805条经验 获得超9个赞

  1. JS中var变量其实是定义的一个对象,对象包罗万象,可以有很复杂的结构。

  2. 对象通过一对大括号{}创建,其中可以有属性,方法(即函数的形式)。

  3. 特有的方法(或函数)写在对象的声明中,是因为这样写代码更逻辑清晰,而不与外界混淆产生干扰,同时维护时也非常方便查找和改进。


查看完整回答
反对 回复 2019-03-27
?
桃花长相依

TA贡献1860条经验 获得超8个赞

1、一个变量等同于一个对象,他既有属性又有方法,可以是逻辑更清晰
2、属于数组,currentState 、 initialize 都属于menu 的属性,:后的是属性的值
3、更改 menu.currentState 属性的值 然后调用 menu.transition 可执行

查看完整回答
反对 回复 2019-03-27
?
开心每一天1111

TA贡献1836条经验 获得超13个赞

”{}“ 表示一个对象,”{}“以”,“分隔该对象的属性或函数


如你列出的代码的含义是:


    创建一个名为menu的对象,同时menu具有currentState属性、函数initialize 和 函数transition


等价于:

1234var menu = {};menu.currentState = "hide";menu.initialize  = function(){...};menu.transition  = function(){...};


你说的,分隔表示数组,那是在”[]“的情况,如:

1var array = [1,2,3];


查看完整回答
反对 回复 2019-03-27
  • 4 回答
  • 0 关注
  • 557 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信