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