zoukankan      html  css  js  c++  java
  • JavaScript的对象深入学习

    JavaScript的对象是一种无序的集合数据类型,它由若干键值对组成。

      JavaScript用一个{...}表示一个对象,键值对以xxx: xxx形式申明,用,隔开。注意,最后一个键值对不需要在末尾加,,
    
      键值对即属性和值,访问属性是通过.操作符完成的,但这要求属性名必须是一个有效的变量名。如果属性名包含特殊字符,
    
      就必须用''括起来,访问这个属性也无法使用.操作符,必须用['xxx']来访问:
    
      var xiaohong = {
            name: '小红',
            'middle-school': 'No.1 Middle School'
      };
       
      xiaohong['middle-school']; // 'No.1 Middle School'
      xiaohong['name']; // '小红'
      xiaohong.name; // '小红'
      
      也可以用xiaohong['name']来访问xiaohong的name属性,不过xiaohong.name的写法更简洁。我们在编写JavaScript代码的时候,
    
      属性名尽量使用标准的变量名,这样就可以直接通过object.prop的形式访问一个属性了。
    
      实际上JavaScript对象的所有属性都是字符串,不过属性对应的值可以是任意数据类型。
    
      如果访问一个不存在的属性会返回什么呢?JavaScript规定,访问不存在的属性不报错,而是返回undefined
    
      var xiaoming = {
            name: '小明'
      };
      xiaoming.age; // undefined
    
      如果我们要检测xiaoming是否拥有某一属性,可以用in操作符
    
      var xiaoming = {
            name: '小明',
            birth: 1990,
            school: 'No.1 Middle School',
            height: 1.70,
            weight: 65,
            score: null
      };
      'name' in xiaoming; // true
      'grade' in xiaoming; // false
    
      不过要小心,如果in判断一个属性存在,这个属性不一定是xiaoming的,它可能是xiaoming继承得到的
    
       'toString' in xiaoming; // true
    
       因为toString定义在object对象中,而所有对象最终都会在原型链上指向object,所以xiaoming也拥有toString属性。
    
       要判断一个属性是否是xiaoming自身拥有的,而不是继承得到的,可以用hasOwnProperty()方法:
    
       var xiaoming = {
             name: '小明'
       };
       xiaoming.hasOwnProperty('name'); // true
       xiaoming.hasOwnProperty('toString'); // false
  • 相关阅读:
    基于 cobbler 实现自动安装 linux 系统
    自动安装 linux 系统
    从12306网站新验证码看Web验证码设计与破解
    用java实现删除文件夹里的所有文件
    本机访问其它电脑上的oracle数据库
    powerdesigner 15 如何导出sql schema
    使用PowerDesigner建立数据库模型
    com.google.gson.stream.MalformedJsonException的解决办法
    Spring注解详解
    nginx中文手册内容说明
  • 原文地址:https://www.cnblogs.com/sunny_z/p/7091209.html
Copyright © 2011-2022 走看看