读书人

javascript 创建对象,该怎么解决

发布时间: 2013-03-28 10:20:24 作者: rapoo

javascript 创建对象

var Luger={
newToDo:function(title,content,time,rank,color){
this.title = title;
this.content = content;
this.time = time;
this.rank = rank;
this.color = color;
},
addToDo:function(toDo){
alert("1"+toDo);
toDoList[toDoList.length] = toDo;
},
newAndAddToDo:function(title,content,time,rank,color){
var toDo = this.newToDo(title,content,time,rank,color);
this.addToDo(toDo);
}

}


上面是我的代码 我想创建一个todo对象,通过Luger.newToDo Luger.addToDo创建和添加,不过这样做貌似不行。是不是我的方法不对。 javascript
[解决办法]
肯定是方法不对了。
大概是这样子的:

// 构造函数
function Luger(title, content, time, rank, color){
this.title = title;
this.content = content;
this.time = time;
this.rank = rank;
this.color = color;
}
// 公共方法
Luger.prototype = {
addToDo : function (toDo) {
alert("1" + toDo);
toDoList[toDoList.length] = toDo;
},
newAndAddToDo: function () {
this.addToDo(this.title);
}
}
// 初始化
var l = new Luger('me', '23age');

[解决办法]

var toDo = this.newToDo(title,content,time,rank,color);
改成
var toDo = new this.newToDo(title,content,time,rank,color);
[解决办法]
newToDo: function (title, content, time, rank, color) {
return {
title: title,
content: content,
time: time,
rank: rank,
color: color
};


},
addToDo: function (toDo) {
toDoList.push(toDo);
},


[解决办法]
提一个用闭包的方法,供你参考:

var Luger=(function(){ // 这里用了闭包
var toDoList = []; // 加了这个定义,你忘了定义它

/**
* ToDo 对象
*/
function ToDo(title,content,time,rank,color) {
this.title = title;
this.content = content;
this.time = time;
this.rank = rank;
this.color = color;
}

return { // API 函数定义返回给 Luger
newToDo:function(title,content,time,rank,color){
return new ToDo(title,content,time,rank,color);
},
addToDo:function(toDo){
alert("1"+toDo);
toDoList[toDoList.length] = toDo;
},
newAndAddToDo:function(title,content,time,rank,color){
var toDo = this.newToDo(title,content,time,rank,color);
this.addToDo(toDo);
}
}

})();

//测试代码示例:
var todo = Luger.newToDo("title2","content2",new Date(),2,"blue");
Luger.addToDo(todo);
Luger.newAndAddToDo("title1","content1",new Date(),1,"red");

读书人网 >JavaScript

热点推荐