首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

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

2013-09-27 
js中,为什么要先new一下对象,才能调用本帖最后由 zqz49877 于 2013-09-21 15:48:11 编辑function obs() {v

js中,为什么要先new一下对象,才能调用
本帖最后由 zqz49877 于 2013-09-21 15:48:11 编辑

function obs() {
    var a= 1;
    return {
        t1:function() {
            alert(a);
        }
    }
}

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

如题,为什么不能直接obs(); js
[解决办法]
你这个写法不用new也行。。 
 
var a = obs();
a.t1();
[解决办法]
你new的不是对象,是构造函数,new + 构造函数生成对象。
如果单就调用方法而言,确实不必用new。
new一般用在“js使用原型和this关键字实现面向对象”的过程中。
[解决办法]
function obs() {
    var a= 1;
    return {
        t1:function() {
            alert(a);
        }
    }
}
 
var a = new obs();
alert(a instanceof obs);

alert返回false,说明a不是obs实例,即不需用new
[解决办法]
new 表示调用构造函数创建了一个对象,不new的话相当于一个普通的函数

热点排行