仅克隆不是函数的属性

Clone only attributes that are not functions

基本上我有一些对象,我只需要它们的数据而不需要它们内部的任何功能,例如:

var obj1 = {
  test: function() {
    doSomeStuff();
  },
  foo: 'bar',
}

var obj2 = _.someThing(obj1);

> obj2 = {
  foo: 'bar'
}

我已经开始做类似的事情,但这并不是我想要的,

_.mapValues(obj1, function(value) {
  if (_.isFunction(value)) {
    return false;
  }
  return value
});

> { test: false, foo: 'bar' }

具有 lodash 的高度首选解决方案。

你可以使用 _.pick 函数,像这样

var res = _.pick(obj1, function (el) {
  return !_.isFunction(el);
})

Example