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

解决方案 »

  1.   

    肯定是方法不对了。
    大概是这样子的:// 构造函数    
    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');
      

  2.   


    var toDo = this.newToDo(title,content,time,rank,color);
    改成
    var toDo = new this.newToDo(title,content,time,rank,color);
      

  3.   

    newToDo: function (title, content, time, rank, color) {
                    return {
                        title: title,
                        content: content,
                        time: time,
                        rank: rank,
                        color: color
                    };
                },
                addToDo: function (toDo) {
                    toDoList.push(toDo);
                },
      

  4.   

    提一个用闭包的方法,供你参考: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");