如何在另一个函数中调用javascript函数?

时间:2013-12-07 19:06:19

标签: javascript prototype

这是我的班级

function User(){
     this.nickname='nickname';
}
User.prototype.save=function(){
     dosomething();
};
User.prototype.add=function(){
     dosometing();
     call save();
};

我想在add()函数中调用save()函数,但我不知道该怎么做。我试过了

User.prototype.add=function(){
     save();
};

和     User.prototype.add =函数(){          User.prototype.save();     };

但两者都错了,我该怎么办?

2 个答案:

答案 0 :(得分:4)

function User() {
  this.nickname = 'nickname';
}
// ...
User.prototype.add = function() {
  this.save();
};

您没有正确定义用户构造函数。

此外,用户的实例(像var myUser = new User();一样创建)可以通过this.methodNameHere();

访问其原型的方法

答案 1 :(得分:3)

好的。您的代码中存在一些错误。

这里我们使用经典的继承模型。

步骤1.创建构造函数。例如。 function user(){...}

步骤2.通过添加方法扩展您的原型。eg add,save etc

步骤3.创建一个实例来调用methods.eg。MyInstance

  function User(){
         this.nickname='nickname';
    }

    User.prototype.dosomething=function(){
        //some code
    };

    User.prototype.save=function(){
         this.dosomething();
    };
    User.prototype.add=function(){
         this.dosometing();
         this.save();
    };

现在我想说我想调用一个方法add.This就是这样做的。

var MyInstance = new User();//create an instance.

MyInstance.add();//call the function.

在你的问题范围之外:同样的事情也可以通过Prototypal Inheritance来完成。

     var UserPrototype={

     save:function(){..},
     add:function(){
         this.save();  
         }
      }

     var MyInstance = Object.Create(UserPrototype);
     MyInstance.add();