当我需要为最深层的函数提供新数据时,如何避免在函数中产生更多的依赖关系?

问题描述

我需要改善我的javascript代码的建议。

例如,如果我们考虑给function z(data)一个新变量bus, 使用功能z的流程从funtion a(data,busObject)开始, 并且功能a调用b(data)功能b调用c(data),...,功能y调用z(data)

就像下面的代码

// b.js
function b(data) {
  c(data)
...
}

// c.js
function c(data) {
  d(data)
...
}

// y.js
function y(data) {
  z(data)
}

函数z需要来自busObject的任何数据时,实现此要求的最佳方法是什么? 我想到了两个选择,但似乎不正确。

1:在每个函数添加一个参数。

那么代码就是

// b.js
function b(data,whatZNeeds) {
  c(data,whatZNeeds)
...
}

// c.js
function c(data,whatZNeeds) {
  d(data,whatZNeeds)
...
}

// y.js
function y(data,whatZNeeds) {
  z(data,whatZNeeds)
}

2:将信息添加data中,并在需要时从中提取信息

// a.js
function a(data,busObject) {
  data.temp = busObject.whatZNeeds;
  b(data)
...
}

// b.js
function b(data) {
  c(data)
...
}

// c.js
function c(data) {
  d(data)
...
}

// y.js
function y(data) {
  z(data)
}


// z.js
function z(data) {
  var whatZNeeds = data.temp;
  delete data.temp;
  ...
}

分享我的想法。我只需要任何关键字,例如我们所说的这些问题。 减少依赖性?...

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...