Javascript Object构造函数作为另一个对象的方法

时间:2014-07-22 14:48:15

标签: javascript object constructor prototype

我有这个对象:

var x = function(){

    var returnObj = {

        constructor:function(ieps){

            this.jow = ieps

        }

    }

    returnObj.constructor.prototype.build = function(){

        alert(this.jow)

    }

    return returnObj

}

我想跟这个打电话:

var jow = new x.constructor("ieps")
jow.build()

所以我尝试让build()执行警报,但是我得到一个x.build()是未定义的。

有什么想法吗?

THX,

1 个答案:

答案 0 :(得分:1)

x是一个返回对象的函数,它具有构造函数作为属性。您必须先调用该功能。其次,您无法使用new x().constructor("ieps"),因为它被解析为(new x()).constructor("ieps"),但实际上您需要new (x().constructor)("ieps")。最后,我们到达:

var jow = new (x().constructor)("ieps")
jow.build()