JavaScript 对象
发布时间:2023-02-16 14:19:28 所属栏目:Java 来源:互联网
导读:对象 指包含数据和用于处理数据的指令的数据结构. 对象有时也指现实世界中的一些事, 例如在赛车游戏当中一辆车或者一幅地图都可以是一个对象。 MDN JavaScript 中的对象由属性和方法组成。 属性可以是任意 JavaScript 中的数据类型,方法则是一个函数。 1.
4.3 Object.create 使用 Object.create 也可以创建一个新对象,但是必须传递一个对象作为参数。 var parent = { walk: function() { console.log('走路'); }, }; var son = Object.create(parent); console.log(parent === son); son.walk(); Object.create 会根据传递过去的对象生成一个新的对象,作为参数传递的对象会作为新对象的原型。 5. 遍历对象 5.1 for … in var me = {height: , weight: }; var i; for (i in me) { console.log(i); console.log(me[i]); } 使用 for ... in 可以遍历对象的所有 key 值,也就是属性名,取到所有的属性就可以访问到所有的属性值。 需要注意的是 for ... in 循环只遍历可枚举属性,同时对象原型上的也会被访问到。 var me = {height: , weight: }; var you = Object.create(me); you.age = ; var i; for (i in you) { console.log(i); } 上面这个例子就把 me 和 you 中的所有属性都遍历出来了。 可以使用 Object.prototype.hasOwnProperty 来判断一个属性是否只处于其本身而不在原型上。 var me = {height: , weight: }; var you = Object.create(me); you.age = ; var i; for (i in you) { if (you.hasOwnProperty(i)) { console.log(i); } } 这样就只会输出 age 了。 5.2 Object.keys Object.keys 会返回对象上的所有可枚举属性组成的数组。 var gugugu = { name: '?王', hobby: '放鸽子', }; var keys = Object.keys(gugugu); console.log(keys); keys.forEach(function(key) { console.log(gugugu[key]) }); 通过遍历属性组成的数组来遍历对象。 5.3 Object.getownPropertyNames 使用 Object.getownPropertyNames 也可以获取到由属性组成的数组,但数组会包括不可枚举的属性。 var gugugu = { name: '?王', hobby: '放鸽子', }; var desc = Object.create(null); desc.enumerable = false; // 是否可枚举 默认就是false desc.value = '最强鸽手'; Object.defineProperty(gugugu, 'nickname', desc); console.log(Object.keys(gugugu)); console.log(Object.getownPropertyNames(gugugu)); 使用 getownPropertyNames 比使用 keys 多出一个不可枚举的 nickname 属性。 注意:ES6 还提供了Object.values、Object.entries、for ... of、Reflect.ownKeys等特性,结合这些特性也能遍历一个对象。 (编辑:莱芜站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |