如何将函数A的参数str传递给函数B?
怎么把函数A的str参数传递给函数B?
当然有办法解决这个问题!咱们来看几种实用的实现思路,按照推荐程度排序:
1. 直接通过函数参数传递(最佳实践)
这是最清晰、最符合代码规范的方式——修改函数B,让它接收一个参数,然后在函数A里调用B的时候把str传进去就行:
function A(str) { // 调用B时传入str参数 B(str); } function B(str) { $x = str; // 这里的str就是从A传递过来的内容了 }
这种方式让数据传递的逻辑一目了然,也方便后续维护和调试,是首选方案。
2. 利用闭包(适合B仅在A内部使用的场景)
如果函数B只需要在函数A内部被调用,那可以把B定义在A的作用域里,借助闭包特性直接访问A的str参数,不用额外传参:
function A(str) { // 把B定义在A内部,就能直接访问外部的str变量 function B(id) { $x = str; } // 在A内部调用B B(); }
这种方式能保持数据的封装性,不会污染全局作用域。
3. 全局变量(不推荐)
如果实在不想修改函数的结构,也可以用全局变量中转,但这种方式容易导致变量污染,后期排查问题会很麻烦,除非特殊情况不建议使用:
// 定义一个全局变量 let sharedStr; function A(str) { // 把str赋值给全局变量 sharedStr = str; // 调用B B(); } function B(id) { // 从全局变量读取str的值 $x = sharedStr; }
内容的提问来源于stack exchange,提问作者Mel
相关产品推荐
相关产品推荐

