函数中的JavaScript函数

函数中的JavaScript函数,javascript,function,Javascript,Function,我想知道是否有可能做到以下几点: worker.name("John").salary(100) 基本上,这将工人(约翰)的工资改为100 有没有办法在函数中定义函数 你能告诉我方法并解释一下吗?这通常被称为链接。基本上,每个方法都返回父对象: var-worker={ 名称:函数(名称){ 这个。_name=name; 归还这个; }, 薪金:职能(薪金){ 这个._工资=工资; 归还这个; } }; 工人姓名(“乔纳森”)。工资($1); 警报(工作人员姓名); 警报(工人工资); 您将

我想知道是否有可能做到以下几点:

worker.name("John").salary(100)
基本上,这将工人(约翰)的工资改为100

有没有办法在函数中定义函数


你能告诉我方法并解释一下吗?

这通常被称为链接。基本上,每个方法都返回父对象:

var-worker={
名称:函数(名称){
这个。_name=name;
归还这个;
},
薪金:职能(薪金){
这个._工资=工资;
归还这个;
}
};
工人姓名(“乔纳森”)。工资($1);
警报(工作人员姓名);
警报(工人工资);
您将注意到,每个方法都返回对象。这在下面的屏幕截图中非常清楚。如果控制台输出调用name方法的结果,我们会看到返回整个
worker
对象:

这是可能的:

var worker = {
  nameVar: null,
  salaryVar: null,
  name: function(name) {
    this.nameVar = name;
    return this;
  },
  salary: function(salary) {
    this.salaryVar = salary;
    return this;
  }
}
每个方法都修改对象,并返回对象的
this
。然后,您可以调用另一个方法,如示例中所示,而无需显式写入对象名称


或者,您可以实现
.clone
方法,并返回带有修改属性的克隆,而不是
。这有点类似于jQuery的工作方式。

创建一个构造函数,如:

var Worker = function(){
};

Worker.prototype.name = function (name){
  this.name = name;
  return this;
};

Worker.prototype.salary = function (salary){
  this.salary = salary;
  return this;
}
现在,上述构造函数可以用作:

var worker = new Worker();
worker.name("John Doe").salary(100);

答:是的,是的possible@Pilot你能告诉我方法并解释一下吗?那不是函数中的函数。只需返回可以调用下一个方法的内容。方法chaining.define object worker with nested Method returning Method again您是否已选中:?能否只使用“worker().name(“JOHN”).salary(100)”?不,这是不可能的,因为我使用了构造函数模式。为此,你可以查看@Jonathan Sampson解决方案。直到现在我才知道这是可能的。