React v0.3.0中的keyOf

React中有一个很特别的工具函数——keyOf,它定义在src/vendor/core/keyOf.js文件中,源代码不长,就是返回了对象的(第一个)key(必须是ownProperty的key),如下:

var keyOf = function(oneKeyObj) {
  var key;
  for (key in oneKeyObj) {
    if (!oneKeyObj.hasOwnProperty(key)) {
      continue;
    }
    return key;
  }
  return null;
};

既然如此,为什么不直接使用字符串常量呢?

使用字符串常量最大的问题,就在于压缩混淆时,无法参与优化。而使用keyOf这个函数的好处,就在于,压缩混淆阶段,其具体值可以被替换成任意字符串,参与优化,同时又不影响源代码中的语义,可谓一举两得。

Show Comments

Get the latest posts delivered right to your inbox.