Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.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 - Fatal编程技术网

Javascript 绑定每个子函数';从上下文到父函数

Javascript 绑定每个子函数';从上下文到父函数,javascript,Javascript,假设我有一个调用一些子函数的父函数,如下所示: 函数parentFn(){ API.greet(); } parentFn.name='john'; 常量API={ 问候:函数(){ console.log(`Hi-there${parentFunc.name}`);//打印'Hi-there-undefined' } }; parentFn()有两种情况: 每个“子”函数只能有一个“父”函数。如果是这样,只需直接引用特定的父项:parentFn.name 每个“子”函数都可以由多个其他函数

假设我有一个调用一些子函数的父函数,如下所示:

函数parentFn(){
API.greet();
}
parentFn.name='john';
常量API={
问候:函数(){
console.log(`Hi-there${parentFunc.name}`);//打印'Hi-there-undefined'
}
};
parentFn()
有两种情况:

  • 每个“子”函数只能有一个“父”函数。如果是这样,只需直接引用特定的父项:
    parentFn.name
  • 每个“子”函数都可以由多个其他函数调用。在这种情况下,需要动态值的参数

请注意,如果不想声明显式参数,则可以使用每个
函数和方法都具有的隐式参数
this
。它通常指向
API.greet()
调用中的
API
对象,但是您可以像
API.greet.call(parentFn)
那样更改它(尽管这有点奇怪)。

为什么不添加参数呢?您提供的代码不会执行您说过的操作。它将抛出一个错误,因为您在一个位置有
parentFn
,但在另一个位置有
parentFunc
。如果您始终使用
parentFn
,您将获得
Hi there parentFn
,因为函数的
name
属性是只读的。我已将问题中的代码放入堆栈片段中。我没有纠正明显的拼写错误,因为我不清楚你是否打算完全做其他事情。当你说父函数时,你是指调用你函数的函数吗?比如,在调用堆栈中比你低一级?如果是这样的话,请参阅“请告诉我们更多关于您的实际用例的信息”,以便我们能够找到惯用的解决方案。