如何在ReactJS中实现一个函数调用另一个函数内的数组值
解决方法
由于abc函数内的a是局部变量,外部无法直接访问,你可以通过以下几种方式实现需求:
1. 让abc返回数组a
修改abc函数使其返回目标数组,在def中调用abc获取该数组:
function abc () { const a = ["Saab", "Volvo", "BMW"] return a; } function def() { const a = abc(); // 这里可以使用数组a了,比如console.log(a) }
2. 将数组提升到共享作用域
把数组定义在两个函数的共同父作用域中,让两者都能直接访问:
const a = ["Saab", "Volvo", "BMW"]; function abc () { // 此处也可直接使用a } function def() { // 直接访问数组a }
3. 用闭包封装共享变量
不想暴露全局变量的话,用闭包包裹两个函数,让它们共享内部作用域:
(function() { const a = ["Saab", "Volvo", "BMW"]; function abc () { // 内部使用a } function def() { // 访问共享的数组a } // 如需外部调用,可挂载到全局对象 window.abc = abc; window.def = def; })();
4. 用对象/类封装
复杂场景下,把数组和函数封装到对象或类中,通过属性访问:
// 对象方式 const carModule = { a: ["Saab", "Volvo", "BMW"], abc() { console.log(this.a); }, def() { console.log(this.a); } }; // 类方式 class Car { constructor() { this.a = ["Saab", "Volvo", "BMW"]; } abc() { console.log(this.a); } def() { console.log(this.a); } }
内容的提问来源于stack exchange,提问作者Biswajit Satpathy
相关产品推荐
相关产品推荐

