"name":function(){}和function name(){}这样的写法有什么区别?

源代码的结构是这样的:

var vname = {
    "name1":function(){
        ...
    }
    "name2":function(){
        ...
    }
}

这样写的作用是什么?

阅读 7.4k
4 个回答

vname是一个json对象,name1,name2作为vname的成员
function name(){}会挂在window对象上

还有一个区别是:

var vname = {
  name1:function(){
    console.log('name1');
  }
}
vname.name1();//name1
vname.name1 = function(){
  console.log('name1 modify');
}
vname.name1();//name1 modify

function name() {
  console.log('fun name');
}

name();//fun name modify
function name() {
  console.log('fun name modify');
}
name();//fun name modify

vname是一个js对象
name1是vname成员,类型为函数
name2是vname成员,类型为函数
使用时可以这么用vname.name1()或者vname.name2()

在vname对象里面,name1, name2是它的属性,name1, name2后面跟的是对应的属性值,不管是什么类型的,都可以通过.name1, .name2来调用;

var vname = {

name: 'luoxue',
age: 18,
getAge: function() {
    return this.age;
}

};

vname.getAge(); // 返回18

把很多方法写在一个对象上,代码结构清晰,利于管理,减少了全局变量,方便继承等等。

写成函数表达式,看起来就很优美。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题