JS中关于new和return的问题

1、为什么在js中,window对象和document对象不需要new,而其他的对象需要new?
2、js中,为什么有时候删除函数中的return,程序会显示未定义?
谢谢解答。

阅读 3.2k
2 个回答

使用new运算符会重新生成一个对象,并把返回值指向这个对象,而window对象是全局执行上下文的变量对象,这个变量对象一开始就有的,如果window需要new,new第一个的时候即使可以指向已存在的变量对象,你再new一个指向谁?何况new都是执行一个新的对象。document只是window上一个属性,没必要new吧。

任何语言的函数都是有参数有返回值的,你不显示的返回并且当前没有使用new运算符会默认返回undefined。

window对象就跟jquery里的$一样,都不需要new,而且整个上下文,就只有一个,其实底层是通过单例模式实现的,它的构造函数里直接return了一个已经new好的window对象出来。

document是window的一个属性。

函数里没有写return默认返回undefined,return ;也是返回undefined

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