Javascript 如何编写JS函数,如操作数(运算符(操作数))?
我似乎无法理解在JavaScript中编写一个类似于Javascript 如何编写JS函数,如操作数(运算符(操作数))?,javascript,Javascript,我似乎无法理解在JavaScript中编写一个类似于8(乘以(5))的函数的逻辑 例如: 8次(五次)应返回40 three(加上(两))应返回5 这是一个代码战问题。它为看起来像“八(){}”的数字0-9提供了空函数,也为看起来像“时间(){}”的运算符提供了空函数。解决方案应该是执行“八(加(三))”将返回11,等等。您可以使用一个函数,该函数返回一个值或一个具有实际值的函数调用。然后您需要为操作数指定一个函数,该函数在函数上为值重新执行闭包 功能八(fn){ 返回类型fn==‘函数’
8(乘以(5))
的函数的逻辑
例如:
应返回408次(五次)
应返回5three(加上(两))
这是一个代码战问题。它为看起来像“八(){}”的数字0-9提供了空函数,也为看起来像“时间(){}”的运算符提供了空函数。解决方案应该是执行“八(加(三))”将返回11,等等。您可以使用一个函数,该函数返回一个值或一个具有实际值的函数调用。然后您需要为操作数指定一个函数,该函数在函数上为值重新执行闭包
功能八(fn){
返回类型fn==‘函数’?fn(8):8;
}
功能时间(fn){
返回函数(op){
返回fn()*op;
};
}
console.log(八次)代码>您可以使用一个函数,该函数返回一个值或带有实际值的函数调用。然后您需要为操作数指定一个函数,该函数在函数上为值重新执行闭包
功能八(fn){
返回类型fn==‘函数’?fn(8):8;
}
功能时间(fn){
返回函数(op){
返回fn()*op;
};
}
console.log(八次)代码>我知道这个问题在我写这个回复的时候得到了回答……但无论如何我都会把它贴出来
function times(fn) {
return function (op) {
return fn() * op;
};
}
function plus(fn) {
return function (op) {
return fn() + op;
};
}
function minus(fn) {
return function (op) {
return fn() - op;
};
};
createNumbers = () => {
var num = 0;
['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine'].forEach((number) => {
let val = num;
window[number] = (fn) => {
return fn ? fn(val) : val;
};
num++;
});
};
createNumbers();
three(times(five)); // 15
eight(plus(two));// 10
etc
我知道这个问题在我写这个回复的时候得到了回答…但无论如何我都会把它贴出来
function times(fn) {
return function (op) {
return fn() * op;
};
}
function plus(fn) {
return function (op) {
return fn() + op;
};
}
function minus(fn) {
return function (op) {
return fn() - op;
};
};
createNumbers = () => {
var num = 0;
['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine'].forEach((number) => {
let val = num;
window[number] = (fn) => {
return fn ? fn(val) : val;
};
num++;
});
};
createNumbers();
three(times(five)); // 15
eight(plus(two));// 10
etc
上述情况的一个问题是假设fn是一个函数;如果一个人写了八(八)个,会发生什么?@ChrisCousins,实际上您得到了一个错误预期的函数。你想得到什么?@ChrisCousins我在上面的评论中提到(实际上与这个问题有关),最内部的引用也应该是一个函数调用,它解决了这个问题。这是一个相当疯狂的DSL虽然考虑到如何。。。许多的数字。。。有;)@达文尼顿,这是什么DSL@NinaScholz领域特定语言。这是一种有限的数学语言,上面的问题是它假设fn是一个函数;如果一个人写了八(八)个,会发生什么?@ChrisCousins,实际上您得到了一个错误预期的函数。你想得到什么?@ChrisCousins我在上面的评论中提到(实际上与这个问题有关),最内部的引用也应该是一个函数调用,它解决了这个问题。这是一个相当疯狂的DSL虽然考虑到如何。。。许多的数字。。。有;)@达文尼顿,这是什么DSL@NinaScholz领域特定语言。这里是一个有限的数学语言。评论仅供澄清。如果你将要发表的评论与此无关,请克制。阅读评论仅用于澄清。如果你将要发表的评论与此无关,请克制。阅读您可以在forEach
回调中使用第二个参数,而不是num
变量您可以在forEach
回调中使用第二个参数,而不是num
变量