Reac中用到很多的 KeyOf/keyMirror 方法。
KeyOf
var keyOf = function (oneKeyObj) {
var key;
for (key in oneKeyObj) {
if (!oneKeyObj.hasOwnProperty(key)) {
continue;
}
return key;
}
return null;
};
这个方法的作用很简单,就是将一个对象的key返回出去。
keyMirror
var keyMirror = function (obj) {
var ret = {};
var key;
!(obj instanceof Object && !Array.isArray(obj)) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'keyMirror(...): Argument must be an object.') : invariant(false) : undefined;
for (key in obj) {
if (!obj.hasOwnProperty(key)) {
continue;
}
ret[key] = key;
}
return ret;
};
这个函数的作用更简单,就是如同一面镜子 (mirror) 一样,讲一个对象形如 key-value 的形式改为 key-key形式,这就像是在key后放置了一面镜子 (Mirror)