constructor属性:返回对象的构造函数
Object对象中的constructor属性可以判断一个对象的类型,constructor属性引用的是对象的构造函数。
如:var myObject1 = new Object();
var myObject2 = new Object(1.3455)/或布尔/字符串...;
document.write(myObject1.constructor);
document.write(myObject2.constructor);
输出结果:function Object(){[native code]}
function Number(){[native code]}
使用constructor属性返回的是对象的构造函数,但在现实中很少通过这样的方法来查看对象的类型,可以通过if语句来判断对象是否属于某种类型.(依旧是上面的例子)
如:if(myObject1==Object){("这是一个对象");}
if(myObject2==Number){("这是一个数字对象");}
toString()方法:对象的字符串表示
Object对象的toString()方法可以返回一个用于表达对象的字符串,其语法如下:
object.toString()
toString()方法通常在调试javascript代码时使用,可以输出对象,查看对象的值,不同类型的对象输出的字符串值都是不同的。
toLocaleString()方法:返回对象的本地字符串表示
toLocaleString()方法与toString方法类似,也能返回对象的字符串表示,不过该字符串是被格式化为适合本地的表示法。对于Object对象来说,toLocaleString()方法是调用了toString()方法,而对于其他对象,如布尔对象,日期对象等,都定义了专属自己的toLocaleString()方法,这些方法都可以指定本地化字符串的表达形式。在自定义对象时,也可以自定义toLocaleString()方法来指定返回的本地化字符串的表达形式。
其语法如下:
object.toLocaleString()
propertyIsEnumerable()方法:是否对象自有属性
使用propertyIsEnumerable()方法,可以判断某个属性是否对象的自有属性。语法代码如下:
object.propertyIsEnumerable(propertyname)
其中propertyname为对象的属性名,该方法返回的是布尔值,只有在同时满足以下3个条件时,才会返回true.
- propertyname必须是object属性
- propertyname不能是继承过来的属性
- propertyname是可以通过for...in语句循环所枚举得到的属性
如:
var myObject = new Object();
myObject.name = "铅笔";
//返回结果:true
document.write(myObject.propertyIsEnumerable("name"));
//返回结果false,因为constructor是从object对象中继承多来的
document.write(myObject.protertyIsEnumerable("constructor"));
hasOwnProperty()方法:判断属性是否非继承的
与propertyIsEnumerable()方法有点类似,hasOwnProperty()方法可以判断一个属性是非继承的属性。语法如下:
object.hasOwnProperty(propertyname)
其中propertyname为对象的属性名,该方法返回的是布尔值,只有在同时满足以下两个条件时,才会返true.
- propertyname必须是object属性
- propertyname不能是继承过来的属性
isprototypeOf()方法:判断是否原型对象
isprototypeOf()方法可以判断一个对象是否是另一个对象的原型对象。语法如下:
object.isPrototypeOf(object1)
其中object为一个对象,object1是另一个对象。如果object是object1的原型对象,则返回true,否则返回false.在javascript总一个对象的原型对象是通过该对象的构造函数的prototype属性引用的。
valueOf()方法:返回对象的原始值
valueOf()方法返回的是对象相关的原始值,如果对象相关的原始值不存在,则返回对象本身。语法如下:
object.value()
例:
var myObject1 = new Object();
myObject.name = "铅笔";
myObject.price = 20;
var myObject2 = Object(1234);
var myObject3 = Object(false);
var myObject4 = Object(str);
//输出[object Object]
document.write(myObject1.valueOf());
//输出 1234
document.write(myObject2.valueOf());
//输出 false
document.write(myObject3.valueOf());
//输出 str
document.write(myObject4.valueOf());