您好,登錄后才能下訂單哦!
小編這次要給大家分享的是Object.keys()和Object.getOwnPropertyNames()有什么區(qū)別,文章內容豐富,感興趣的小伙伴可以來了解一下,希望大家閱讀完這篇文章之后能夠有所收獲。
大部分情況下Object.getOwnPropertyNames()與Object.keys(obj)的功能是一樣的,我們一般也是用來獲取一個JSON對象中所有屬性,例如
const obj = { property1: 1, property2: 2, }; console.log(Object.keys(obj)); console.log(Object.getOwnPropertyNames(obj));
輸出:
> Array ["property1", "property2"]
> Array ["property1", "property2"]
Object.keys() 方法會返回一個由一個給定對象的自身可枚舉屬性組成的數(shù)組,數(shù)組中屬性名的排列順序和正常循環(huán)遍歷該對象時返回的順序一致 。
Object.getOwnPropertyNames()方法返回一個由指定對象的所有自身屬性的屬性名(包括不可枚舉屬性但不包括Symbol值作為名稱的屬性)組成的數(shù)組。
共同點:都是返回自身的屬性,不會返回原型鏈上的。
區(qū)別: Object.keys()返回可枚舉的,Object.getOwnPropertyNames()返回所有的。
Person = function(name){ this.name = name || '' } Person.prototype.sayHello = function(){ console.log('hello') } p = new Person('yangyang') p.age = 18 Object.defineProperties(p, { age:{ enumerable:false } }) console.log(Object.keys(p)) // ["name"] console.log(Object.getOwnPropertyNames(p)) // ["name", "age"]
看完這篇關于Object.keys()和Object.getOwnPropertyNames()有什么區(qū)別的文章,如果覺得文章內容寫得不錯的話,可以把它分享出去給更多人看到。
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。