我可以用Javascript重写吗?

我可以用Javascript重写吗?,javascript,Javascript,我怎样才能创建这样的对象 var sum = { a : 5, b : 7, sumar : function() { return (this.a+this.b); }, sumar : function(a, b) { return (a+b); } } 然后使用任何这样声明的方法 sumar0 = sum.sumar(); //use the method without parameters sumar1 = sum.sumar(

我怎样才能创建这样的对象

var sum = {

  a : 5,
  b : 7,  
  sumar : function()
  {
    return (this.a+this.b);
  },
  sumar : function(a, b)
  {
    return (a+b);
  }

}
然后使用任何这样声明的方法

sumar0 = sum.sumar(); //use the method without parameters
sumar1 = sum.sumar(6,7); //use the method with parameters.
就像“重写”方法一样?这可能吗


提前感谢并对我在Javascript中的糟糕英语表示歉意,您不会像在其他一些语言中那样使用不同的参数声明两个同名的方法。相反,您只声明一个名为的方法,然后在调用函数时检查参数,以确定应遵循的行为

当您声明两个名称完全相同的属性时,解释器将忽略其中一个属性,因为Javascript中的任何给定属性只能有一个值

Javascript中有一个关于重载的详细描述,这里有许多示例:


在您的特定情况下,您可以测试传递给方法和相应分支的参数数量:

var和={
a:5,
b:7,
sumar:函数(a,b)
{
if(arguments.length<2){
//未传递参数,请使用实例变量
返回(此.a+此.b);
}否则{
//参数已传递,请使用它们
返回(a+b);
}
}
}
写入(sum.sumar()+“
”);
写(sum.sumar(6,7)+“
运行代码时您发现了什么?您描述的内容称为。