首页 > js的对象继承问题

js的对象继承问题

function main(){
    var _this = {};
    _this.say = function(){
        alert('haha');
    }
    _this.name = 'lucy';
    return _this;
}
function extand(){
    var _this = main();
    return _this;
}
var p = extand();
p.say();

最后一行,请问为什么p.say这样写就不行了,调用别的什么属性不都是直接用就行了吗,比如调用名字p.name就可以输出lucy了


你可以alert一下p.say()和p.say。
前者相当于是一个执行语句,它会执行p.say这个function,而后者只会获得这个function的声明。


楼上正解, p.say 是个 function(){} 啊


因为你说的p.name的name是个基本类型值,而say是函数,属于引用类型值。

【热门文章】
【热门文章】