發(fā)布于:2021-01-29 15:43:55
0
165
0
JavaScript或?qū)嶋H上是任何編程語言中最有趣的部分之一是,大量的小技巧和怪癖使該語言更加有趣。我最近學到了一個不錯的事實Object.create:使用null 作為創(chuàng)建超級普通的詞典的唯一參數(shù)!
Object.create 對于原型創(chuàng)建一直是一個很棒的實用程序。雖然這是很好的,對象與創(chuàng)建Object.create 已__proto__和繼承Object 可控制的特性。如果您只是希望字典不易于受到外界的操縱該怎么辦?您可以使用Object.create(null):
let dict = Object.create(null);
// dict.__proto__ === "undefined"
// No object properties exist until you add them
由于沒有原型,因此無法從外部操縱您的Object,它盡可能保留字典的原始性!比較一下Object.create({}):
let obj = Object.create({});
// obj.__proto__ === {}
// obj.hasOwnProperty === function
Object.prototype.someFunction = () => {};
// obj.someFunction === () => {};
// dict.someFunction === undefined
傳遞Object.create 空對象允許通過來添加屬性Object.prototype.customPropName,而您可能并不總是想要這樣。
直到最近我才知道這個技巧,但是以后會用到很多!