1、不要直接调用 Object.prototype
的方法,比如 hasOwnProperty
, propertyIsEnumerable
, 和 isPrototypeOf
.
// bad console.log(object.hasOwnProperty(key)); // good console.log(Object.prototype.hasOwnProperty.call(object, key)); // best const has = Object.prototype.hasOwnProperty; // 在模块作用域内,缓存查找一次。 /* or */ import has from ‘has‘; // ... console.log(has.call(object, key));
2、用对象展开操作符浅复制对象,优先于Object.assign
。使用对象剩余操作符来获得一个省略某些属性的新对象。
// very bad const original = { a: 1, b: 2 }; const copy = Object.assign(original, { c: 3 }); // `original` 是可变的 ?_? delete copy.a; // so does this // bad const original = { a: 1, b: 2 }; const copy = Object.assign({}, original, { c: 3 }); // copy => { a: 1, b: 2, c: 3 } // good const original = { a: 1, b: 2 }; const copy = { ...original, c: 3 }; // copy => { a: 1, b: 2, c: 3 } const { a, ...noA } = copy; // noA => { b: 2, c: 3 }
原文链接: http://www.css88.com/archives/8345