第1引数 object に対して第2引数をkey値としたその値が関数でないなら、そのまま値を返し、第2引数をkey値としたその値が関数なら this を第1引数にして返します。
■使用例
var obj = {
author : "TM Network",
works : "CAROL",
works2 : "Dress",
works4 : "Self Control",
works5 : "Rhythm Red",
works6 : "Expo",
works7 : "Twinkle Night",
works8 : "GORILLA",
funks : function(){
return _.functions( this );
}
};
// re = [ "funks" ];
var re = _.result( obj, "funks" );
// re2 = "CAROL";
var re2 = _.result( obj, "works" );
■内部構造
_.result = function(object, property, fallback) {
// 第1引数が null なら value = undefined;
var value = object == null ? void 0 : object[property];
if (value === void 0) {
// 第1引数が null なら第3引数が返される。
value = fallback;
}
// value が関数なら value.call( object );
return _.isFunction(value) ? value.call(object) : value;
};