2.11 extendOwn

5.11.1 语法:

_.extendOwn(obj, *source);

5.11.2 说明:

extendOwn和extend类似,唯一不同的是继承过来的属性将不会进行处理

5.11.3 代码示例:

var result = _.extendOwn({ one: 1 }, { two: 2 });
console.log(result); //=> {one: 1, two: 2}

5.11.4 参数obj为非对象,则返回参数,参数若为空则返回undefined

var result;

// 参数obj为空
result = _.extendOwn(); 
console.log(typeof result); //=> undefined

// 参数obj为数字
result = _.extendOwn(123);
console.log(result); //=> 123

// 有两个参数都为数组
result = _.extendOwn([1], [2]);
console.log(result); //=> [2]

5.11.5 如果有重复的属性则会覆盖前边的属性

var result = _.extendOwn({ one: 1 }, { two: 2 }, { two: 3 });
console.log(result); //=> {one: 1, two: 3}

5.11.6 函数prototype继承属性将不会合并

var Child = function () { };
Child.prototype = {
    name: 'zhangsan'
}
var result = _.extendOwn({ one: 1 }, new Child);
console.log(result); //=> {one: 1}

5.11.7 特殊情况

var result = _.extendOwn({}, { a: void 0, b: null });
console.log(result); //=> {a: undefined, b: null}