相关疑难解决方法(0)

React中的事件处理程序

我试图onChange在Component上写一个(curried?)事件处理程序,它将接收一个key参数,让它知道要更新的状态对象中的哪个键.代码不会编译,说'key' is not defined.

class App extends Component {
  constructor(props) {
    super(props);
    this.state = {
      firstName: null,
      lastName: null
    }
    this.handleChange = this.handleChange.bind(this);
  }

  handleChange = (key) = (event) => {
    console.log(key, event);
  }

  render() {
    return (
      <div>

        <form>
          <input onChange={this.handleChange('firstName')} value={this.state.firstName} />
          <input onChange={this.handleChange('lastName')} value={this.state.firstName} />
        </form>

        {JSON.stringify(this.state, null, 4)}
      </div>
    );
  }
}
Run Code Online (Sandbox Code Playgroud)

javascript functional-programming currying reactjs

6
推荐指数
1
解决办法
1558
查看次数

如何在JS中的函数调用之间存储参数

一个函数被多次调用,有没有一种方法可以存储上一个函数调用的上下文/参数并与当前函数进行检查。

javascript function

5
推荐指数
1
解决办法
97
查看次数

如何在javascript中实现下划线memoize

我正在开发自己的函数式编程库,现在引用它underscore.

memoize _.memoize(function,[hashFunction])

通过缓存计算结果来记忆给定函数.对于加速慢速运行计算很有用.如果传递了一个可选的hashFunction,它将用于根据原始函数的参数计算用于存储结果的哈希键.默认的hashFunction只使用memoized函数的第一个参数作为键.

var fibonacci = _.memoize(function(n) {
  return n < 2 ? n: fibonacci(n - 1) + fibonacci(n - 2);
});
Run Code Online (Sandbox Code Playgroud)

上面的代码可以实现自动记忆而不需要处理array看起来很神奇,我看到了下面的源代码,但内部设计仍然不清楚.

 // Memoize an expensive function by storing its results.
  _.memoize = function(func, hasher) {
    var memoize = function(key) {
      var cache = memoize.cache;
      var address = hasher ? hasher.apply(this, arguments) : key;
      if (!_.has(cache, address)) cache[address] = func.apply(this, arguments);
      return cache[key];
    };
    memoize.cache = {};
    return memoize;
  };
Run Code Online (Sandbox Code Playgroud)

有人能简单介绍一下发生了什么吗?

赞赏.

javascript memoization underscore.js

4
推荐指数
1
解决办法
9033
查看次数

哪些记忆库可用于 Javascript?

有许多用于记忆功能的 Javascript 库。

对于各种用例,有哪些最好的(高质量、灵活、快速等)?

javascript memoization

2
推荐指数
1
解决办法
1030
查看次数