js中,为什么要先new一下对象,才能调用

zqz49877 2013-09-21 03:43:00
function obs() {
var a= 1;
return {
t1:function() {
alert(a);
}
}
}

var a = new obs();
a.t1();

如题,为什么不能直接obs();
...全文
605 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
zqz49877 2013-09-23
  • 打赏
  • 举报
回复
引用 6 楼 qwklove 的回复:
你new的不是对象,是构造函数,new + 构造函数生成对象。 如果单就调用方法而言,确实不必用new。 new一般用在“js使用原型和this关键字实现面向对象”的过程中。
谢谢啊,学习了,我的例子也不正确,原来是用于原型的
notlikeGaoShou 2013-09-22
  • 打赏
  • 举报
回复
new 表示调用构造函数创建了一个对象,不new的话相当于一个普通的函数
java掌门 2013-09-22
  • 打赏
  • 举报
回复
引用 3 楼 u011461314 的回复:
new是什么东西,为什么要用new.
那是面向对象的写法,类似于java中的class用法。
  • 打赏
  • 举报
回复
function obs() {
    var a= 1;
    return {
        t1:function() {
            alert(a);
        }
    }
}
 
var a = new obs();
alert(a instanceof obs);
alert返回false,说明a不是obs实例,即不需用new
阿鱼 2013-09-22
  • 打赏
  • 举报
回复
你new的不是对象,是构造函数,new + 构造函数生成对象。 如果单就调用方法而言,确实不必用new。 new一般用在“js使用原型和this关键字实现面向对象”的过程中。
似梦飞花 2013-09-22
  • 打赏
  • 举报
回复
不用也可以啊 直接返回一个对象
xilaianzxsc 2013-09-22
  • 打赏
  • 举报
回复
我也同样学习了
zhjdg 2013-09-21
  • 打赏
  • 举报
回复
new是什么东西,为什么要用new.
KK3K2005 2013-09-21
  • 打赏
  • 举报
回复
您老直接试下不就知道能不能用了
Go 旅城通票 2013-09-21
  • 打赏
  • 举报
回复
你这个写法不用new也行。。 var a = obs(); a.t1();

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧