静态方法:定义在队形本身的方法
实例方法:在对象原型上的方法,所有示例可继承得到。
- 两个静态方法(更多的暂不介绍)
- 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
- Object.keys():遍历对象自身的可枚举属性。
- 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():接收一个字符串作为参数,判断某个属性是否为当前对象自身的属性,还是继承自原型对象的属性,返回一个布尔值。