我试图在内部创建一个对象实例,如下所示:
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());
我的代码出了什么问题?
答案 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())