在内部创建对象的实例

时间:2015-06-09 23:08:31

标签: javascript javascript-objects

我试图在内部创建一个对象实例,如下所示:

var oo = function(){
    return new func();
}

var func = function(){
    this.name;
    this.age;  
};

func.prototype = {
    setData: function(name, age){
        this.name = name;
        this.age = age;
    },
    getData: function (){
        return this.name + " " + this.age;
    }
}

使用时,我收到错误oo.setData is not a function

oo.setData("jack", 15);
console.log(oo.getData());

我的代码出了什么问题?

2 个答案:

答案 0 :(得分:2)

这是因为oo不是“func”,oo 返回一个新的func。您可以使用

设置数据
oo().setData('jack',15);

但是你无法访问它。

您也可以使用

var newfunc = oo();
newfunc.setData('jack',15);
newfunc.getData();

答案 1 :(得分:1)

oo是一个创建对象的函数。

var oo = function(){ //the oo variable is used to create func() objects
    return new func();
}

var func = function(){ //function
    this.name;
    this.age;  
};

func.prototype = { //define properties to func
    setData: function(name, age){
        this.name = name;
        this.age = age;
    },
    getData: function (){
        return this.name + " " + this.age;
    }
}

//create instance
var myObject = oo();
//or
var myObject = new func();

//Use
myObject.setData("jack", 12);

//Get a property
console.log(myObject.getData())
相关问题