函数中的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解决方案。直到现在我才知道这是可能的。