Object.property中的属性和方法
- constructor 指向原型相关联的构造函数为Object
- hasOwnProperty 判断对象中是否拥有某个实例属性(不包括原型链上面的属性)
- isPrototypeOf 校验某个对象是否是指定对象的原型对象(整条原型链)
- propertyIsEnumerable 属性是否存在且可枚举(使用for循环可以遍历,即目标属性能否在for循环中显示出来)
- toString() 返回一个描述目标对象的字符串,对象则返回[object object]
toString(参数) 参数出可以传入一个用于进制数的参数,该参数的默认值为10(主要针对Number类型有效)
- toLocaleString 同toString,但是会做一些本地化的处理。
- valueOf() 如果该对象有对应的基本数据类型的值,则返回对应的基本数据类型值,如果没有则返回this本身。
Date对象调用该方法会返回一个时间戳
constructor
<script>
function Person() {}
var p = new Person();
console.log(p.constructor); //function Person() {}
console.log(Person.prototype.constructor); //function Person() {}
console.log(Object.prototype.constructor); //function Object() { [native code] }
</script>
hasOwnProperty
<script>
function Person() {
this.name = "默认的姓名"
}
//检查对象中是否拥有指定的属性(实例属性)
var p1 = new Person();
p1.hasOwnProperty("name"); //true
p1.hasOwnProperty("age"); //false
p1.hasOwnProperty("constructor"); //对象的constructor是从原型对象上继承的
</script>
isPrototypeOf
<script>
function Animal() {}
function Cat() {}
Cat.prototype =Animal.prototype;
//检查某对象是否是指定对象的原型对象
var cat = new Cat();
console.log(Animal.prototype.isPrototypeOf(cat)); //true
</script>
propertyIsEnumerable
<script>
var obj = {
name:"张三",
age:20,
hello:function () {
console.log("hello");
},
showName:function () {
console.log(this.name);
}
}
//属性是否存在且可以枚举
console.log(obj.propertyIsEnumerable("name")); //true
</script>
toString
<script>
var obj = {};
console.log(obj.toString()); //打印[object Object]
var arr = [1,2,3,4,5];
console.log(arr.toString()); //打印1,2,3,4,5
var num = 10;
console.log(num.toString()); //10
var date = new Date();
console.log(date.toString()); //Mon Feb 13 2017 19:00:13 GMT+0800 (CST)
//toString方法可以传入参数,在处理Number类型数据的时候,可以传入指定的进制
console.log(num.toString(2)); //1010 == 1*2*2*2+0*2*2+1*2+1*1 = 10
console.log(num.toString(3)); //101 == 1*3*3 + 0*3 + 1*1 = 10
</script>
valueOf
<script>
var obj = {};
console.log(obj + 1); //[object Object]1
//说明:如果该对象有对应的基本数据类型的值,则返回对应的基本数据类型值,如果没有则返回this本身。
var o = {name:"张三"};
console.log(o + 1); //[object Object]1
var date = new Date();
console.log(date.valueOf()); //1486984088998
</script>