码迷,mamicode.com
首页 > 其他好文 > 详细

Object.prototype不要直接使用,代码规范

时间:2018-01-18 13:32:27      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:imp   key   www.   方法   一个   org   const   col   调用   

1、不要直接调用 Object.prototype 的方法,比如 hasOwnPropertypropertyIsEnumerable, 和 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

Object.prototype不要直接使用,代码规范

标签:imp   key   www.   方法   一个   org   const   col   调用   

原文地址:https://www.cnblogs.com/theArrow/p/8309307.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!