静态方法:定义在队形本身的方法
实例方法:在对象原型上的方法,所有示例可继承得到。

  • 两个静态方法(更多的暂不介绍)
    • Object.keys():遍历对象自身的可枚举属性。
      var obj = {
      p1: 123,
      p2: 456
      };
      Object.getOwnPropertyNames(obj) // ["p1", "p2"]
    • Object.getOwnPropertyNames():遍历对象自身的属性,包括不可枚举属性。
      var a = ['Hello', 'World'];
      Object.keys(a) // ["0", "1"]
      Object.getOwnPropertyNames(a) // ["0", "1", "length"]
      可以通过这两个方法得到对象的属性个数
      Object.getOwnPropertyNames(a).length //2
  • 4个主要的实例方法
    • Object.prototype.valueOf():返回当前对象对应的值。
    • Object.prototype.toString():返回当前对象对应的字符串形式。
      用途
      1.可以通过自定义toString方法在数据类型转换时得到想要的字符串。
      var obj = new Object();
      obj.toString = function () {
      return 'hello';
      };
      obj + ' ' + 'world' // "hello world"
      2.Object.prototype.toString可以看出一个值到底是什么类型
      var type = function (o){
      var s = Object.prototype.toString.call(o);
      return s.match(/\[object (.*?)\]/)[1].toLowerCase();
      };
      type({}); // "object"
      type([]); // "array"
      type(5); // "number"
      type(null); // "null"
      type(); // "undefined"
      type(/abcd/); // "regex"
      type(new Date()); // "date"
    • Object.prototype.toLocaleString():返回当前对象对应的本地字符串形式。
    • Object.prototype.hasOwnProperty():接收一个字符串作为参数,判断某个属性是否为当前对象自身的属性,还是继承自原型对象的属性,返回一个布尔值。