Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/447.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将函数作为参数传递给其他函数_Javascript_Function - Fatal编程技术网

Javascript 将函数作为参数传递给其他函数

Javascript 将函数作为参数传递给其他函数,javascript,function,Javascript,Function,我最近开始学习编程和JS、HTML、CSS。 目前正在阅读一本书,其中包括以下代码片段,我试图理解并修改这些代码片段,以供自己练习和理解。但我真的不明白发生了什么。 有没有人可以试着解释一下发生了什么,以及为什么我修改过的代码片段不能运行——因为它看起来确实与原始代码片段中运行良好的部分相似。 所附的第一个片段是本书的原始片段。 第二个是在前一个的基础上建造的矿山 var validatedatafow=函数(数据){ person=数据(); 控制台日志(个人); 如果(人·99岁){ 返回

我最近开始学习编程和JS、HTML、CSS。 目前正在阅读一本书,其中包括以下代码片段,我试图理解并修改这些代码片段,以供自己练习和理解。但我真的不明白发生了什么。 有没有人可以试着解释一下发生了什么,以及为什么我修改过的代码片段不能运行——因为它看起来确实与原始代码片段中运行良好的部分相似。 所附的第一个片段是本书的原始片段。 第二个是在前一个的基础上建造的矿山

var validatedatafow=函数(数据){
person=数据();
控制台日志(个人);
如果(人·99岁){
返回true;
}否则{
返回false;
}
};
var errorHandlerFlow=函数(错误){
日志(“处理时出错”);
};
函数parseRequest(数据、validateData、errorHandler){
var错误=验证数据(数据);
如果(!错误){
console.log(“无错误”);
}否则{
errorHandler();
}
}
var generateDataForScientist=函数(){
返回{
姓名:“阿尔伯特·爱因斯坦”,
年龄:Math.floor(Math.random()*(100-1))+1,
};
};
//解析请求
parseRequest(generateDataForScientist、ValidateDataForScientist、,

错误处理程序这是您正在查看的代码。它期望
数据
成为一个函数

…事实就是如此(在通过几个其他变量和函数调用后分配给
generateDataForScientist


这是您的代码:

它期望
age
成为一个函数

在这里传递一个值:


17
是一个数字,不是函数。

这是您正在查看的代码。它期望
数据
成为一个函数

…事实就是如此(在通过几个其他变量和函数调用后分配给
generateDataForScientist


这是您的代码:

它期望
age
成为一个函数

在这里传递一个值:


17
是一个数字,而不是一个函数。

问题在于代码的这一部分

var generateDataForScientist = function() {
  return {
    name: "Albert Einstein",
    age : Math.floor(Math.random() * (100 - 1)) + 1, // <- problem
  };
};

问题就在这部分代码中

var generateDataForScientist = function() {
  return {
    name: "Albert Einstein",
    age : Math.floor(Math.random() * (100 - 1)) + 1, // <- problem
  };
};

parseRequest
内部控制台
data
将把它作为一个函数记录下来。但是您需要属性
age
。因此,将
validateData(data)
替换为
validateData(data())

var validatedatafow=函数(数据){
让人=数据;
如果(person.age<1 | | person.age>99){
返回true;
}否则{
返回false;
}
};
var errorHandlerFlow=函数(错误){
日志(“处理时出错”);
};
函数parseRequest(数据、validateData、errorHandler){
console.log(数据)
var error=validateData(data());
如果(!错误){
console.log(错误);
}否则{
errorHandler();
}
}
var generateDataForScientist=函数(){
返回{
姓名:“阿尔伯特·爱因斯坦”,
年龄:Math.floor(Math.random()*(100-1))+1,
};
};
//解析请求

parseRequest(generateDataForScientist、ValidateDataFow、ErrorHandlerFow)
parseRequest
内部对
数据进行控制台操作将其作为函数记录。但是您需要属性
age
。因此,将
validateData(data)
替换为
validateData(data())

var validatedatafow=函数(数据){
让人=数据;
如果(person.age<1 | | person.age>99){
返回true;
}否则{
返回false;
}
};
var errorHandlerFlow=函数(错误){
日志(“处理时出错”);
};
函数parseRequest(数据、validateData、errorHandler){
console.log(数据)
var error=validateData(data());
如果(!错误){
console.log(错误);
}否则{
errorHandler();
}
}
var generateDataForScientist=函数(){
返回{
姓名:“阿尔伯特·爱因斯坦”,
年龄:Math.floor(Math.random()*(100-1))+1,
};
};
//解析请求

parseRequest(generateDataForScientist、ValidateDataFow、ErrorHandlerFow)您需要将年龄定义为函数您需要将年龄定义为函数谢谢您的帮助!谢谢你的帮助!
validateAge(17);
var generateDataForScientist = function() {
  return {
    name: "Albert Einstein",
    age : Math.floor(Math.random() * (100 - 1)) + 1, // <- problem
  };
};
var validateAge = function(age) {
  person = age(); // <-- here ,age is not a function
  console.log(age);

}
var generateDataForScientist = function() {
  return {
    name: "Albert Einstein",
    age : function (){ return Math.floor(Math.random() * (100 - 1)) + 1 },
  };
};