5.7 create

5.7.1 语法:

_.create(prototype,props)

5.7.2 说明:

给某个对象原型创建新对象,覆盖原有的属性,返回一个对象或数组

5.7.3 代码示例:

示例一:prototype属性

var Child = function () { }, result;
result = _.create(Child.prototype);
console.log(result); //=> {}

// 操作字符串
result = _.create('123');
console.log(result); //=> {}

// 操作数组
result = _.create([1]);
console.log(result); //=> []

示例二:props属性

var Child = function () { }, result;
result = _.create(Child.prototype, {
    one: 1
});
console.log(result); //=> {one: 1}

// props为数组
result = _.create('123', [1, 2]);
console.log(result); //=> {0: 1, 1: 2}
`

5.7.4 create方法的一些特殊传值?

var result;

// 不进行传值
result = _.create();
console.log(result); //=> {}

// prototype非数组的时候且props没值将返回{}
result = _.create(true);
console.log(result); //=> {}

// prototype为数组且props也为数组{}
result = _.create([], [{one: 1 }, {two: 2 }]);
console.log(result); //=> [0: {one: 1}, 1: {two: 2}]

5.7.5 给函数原型创建新对象,函数是否保留现有的对象?函数的属性是通过create新增的属性吗?

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