javascript对象的一个疑问

一般情况下,对象必须有键值,如下

var boss={
    name:'intrwins',
    age:34,
    address:'郑州',
    sex         //没有值就会报错
}

但是下面的为什么就对了呢?

var boss={
    name:'intrwins',
    age:34,
    address:'郑州',
    returnThis(){
        return this;
    }
}
阅读 2.1k
5 个回答

js 5.1时候 优化了对象的写法, 使书写更优雅
1: 属性的书写
`
obj = {
name
}
相当于
obj = {
name:name
}
`
2: 方法的书写, 特别注意* 这种简写的方式不可以作为构造函数使用

obj = {
  handle(){}
}

等价于
obj = {
  handle : function(){}
}

1,var b = { a }也可以是对的,如果提前声明了var a = 1;的话
2,returnThis 是方法

var boss = { sex } 相当于 var boss = { sex: sex }这样的写法,如果没有提前声明sex这个变量的话,就会报错"sex is not defined"

returnThis(){
   return this;
}

// 上面这种写法等同于

returnThis: function(){
   return this;
}

报错,不代表“对象必须有键值”

var boss={
    name:'intrwins',
    age:34,
    address:address,//address没定义也会报错啊
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题