5.19 property
5.19.1 语法
_.property(key)
5.19.2 说明
传一个key,返回一个函数。
传入一个obj到这个函数,返回key的值。
适用于多个不对象取相同key的值。
5.19.3 代码示例
示例一:基础用法
var stooge = {name: 'moe'};
var func = _.property('name');
var value = func(stooge);
console.log(value); // String => moe
示例二:我们为什么不样子
var stooge = {name: 'moe'};
var value = stooge.name;
console.log(value); // String => moe
示例三:当stooge不受控制的时候
var stooge = undefined;
var value = stooge.name; //Uncaught TypeError: Cannot read property 'name' of undefined
示例四:用propertyOf不报错
var stooge = undefined;
var func = _.property('name');
var value = func(stooge);
console.log(value); //=> undefined
5.19.4 适用于多个不对象取相同key的值。
var user1 = {name: 'kyo', age : 1};
var user2 = {name: 'iori', age : 3};
var user3 = {name : 'atina'};
var getUserName = _.property('name');
console.log(getUserName(user1));
console.log(getUserName(user2));
console.log(getUserName(user3));
5.19.5 源码
_.property = function(key) {
//直接返回一个function
return function(obj) {
//如果有obj取值返回,否则直接给undefined
return obj == null ? void 0 : obj[key];
};
};
//这里用到了柯里化相关搜索curry2