加入收藏 | 设为首页 | 会员中心 | 我要投稿 莱芜站长网 (https://www.0634zz.com/)- 云连接、建站、智能边缘云、设备管理、大数据!
当前位置: 首页 > 编程开发 > Java > 正文

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等特性,结合这些特性也能遍历一个对象。

(编辑:莱芜站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读