问两个关于javascript的问题!

问题1:

 function a() {
         return  {
             name :'小王'
            }
      }
      a1 = a()
      alert(a1.name)

上面的代码输出是小王

 function a() {
           var name = '小王'
         return  name
      }
      a1 = a()
      alert(a1.name)

但是上面的代码输出为啥是undefined而不是小王呢?

问题2:

 function a() {
         name : '小王'
         console.log(name)
         return name
      }
      alert(a())

请问函数是不能用键值对的方式赋值吗,上面的内容输出为空,但是没有报错。。

阅读 2.3k
2 个回答
  1. 前一个返回的是 {name:"小王"} ,后一个返回的是 "小王"
    你对他们分别 .name 一下,后一个自然是 undefined"小王".name
请问函数是不能用键值对的方式赋值吗

不能。

没有报错,因为 name: 被认为是一个 label

 function a() {
           var name = '小王'
         return  name
      }
      a1 = a()
      alert(a1.name)

此时 a1 就是 name='小王' ,他还哪有什么a1.name 呀,

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