javascript中Object类原型对象的属性和方法

时间:2022-08-24 22:26:10

javascript所有对象都继承自Object类。以下是Object类的一些属性。原型对象

的一些属性。

1、constructor属性
从javascript1.1开始,每个对象都有这个属性,它指向用来初始化改对象的构造

函数

javascript中Object类原型对象的属性和方法< SCRIPT LANGUAGE = " JavaScript " >
javascript中Object类原型对象的属性和方法
<!--
javascript中Object类原型对象的属性和方法javascript中Object类原型对象的属性和方法
function  Person() {}
javascript中Object类原型对象的属性和方法
var  o = new  Person();
javascript中Object类原型对象的属性和方法
javascript中Object类原型对象的属性和方法alert(
typeof (Person.constructor));
javascript中Object类原型对象的属性和方法alert(o.constructor);
javascript中Object类原型对象的属性和方法alert(Person.constructor);
javascript中Object类原型对象的属性和方法alert(Function.constructor);
javascript中Object类原型对象的属性和方法alert(Object.constructor)
javascript中Object类原型对象的属性和方法
javascript中Object类原型对象的属性和方法alert(
new  Date().constructor);
javascript中Object类原型对象的属性和方法alert(Date.constructor);
javascript中Object类原型对象的属性和方法
javascript中Object类原型对象的属性和方法
javascript中Object类原型对象的属性和方法javascript中Object类原型对象的属性和方法
function  Man() {
javascript中Object类原型对象的属性和方法
javascript中Object类原型对象的属性和方法}

javascript中Object类原型对象的属性和方法Man.prototype
= new  Person();
javascript中Object类原型对象的属性和方法alert(Man.constructor);
javascript中Object类原型对象的属性和方法o
= new  Man();
javascript中Object类原型对象的属性和方法alert(o.constructor)
javascript中Object类原型对象的属性和方法Man.prototype.constructor
= Man;
javascript中Object类原型对象的属性和方法alert(o.constructor)
javascript中Object类原型对象的属性和方法
// -->
javascript中Object类原型对象的属性和方法
</ SCRIPT >
javascript中Object类原型对象的属性和方法

 如以上代码,可以知道
a、constructor的类型是函数;
b、javascript内部实现了很多函数,如Object,Date都是函数由Function得到的


c、用原型对象实现的继承中,也要设置子类的constructor。如果你的程序中用

到了constructor,可能会出错。
2、toString()方法
相当于java Object类中toString方法。你alert()  + 等操作中就会调用这个方

法。 var s='1'+'2',会自动把'1'  '2'  转化成String对象在执行。

但数组定义自己的toString方法。alert(Array.prototype.toString)

如果对象或子类要调用父类的方法可以

javascript中Object类原型对象的属性和方法< SCRIPT LANGUAGE = " JavaScript " >
javascript中Object类原型对象的属性和方法
<!--
javascript中Object类原型对象的属性和方法alert([
1 , 2 , 3 ].toLocalString())
javascript中Object类原型对象的属性和方法alert(Object.prototype.toString.apply([
1 , 2 , 3 ]));
javascript中Object类原型对象的属性和方法
// -->
javascript中Object类原型对象的属性和方法
</ SCRIPT >

3、toLocalString()方法
ECMAScript v3 javascript1.5中定义了这个方法。返回局部化的值。偶还不知道

什么用法。
4、valueof()
当javascript与要将一个对象转化成字符串之外的原始类型时调用它。

5、hasOwnProperty()方法
《javascript权威指南》说如果是非继承的属性返回true.但下列代码反映,它检

验对象的实例属性。对原型属性不会返回。

javascript中Object类原型对象的属性和方法< SCRIPT LANGUAGE = " JavaScript " >
javascript中Object类原型对象的属性和方法
<!--
javascript中Object类原型对象的属性和方法javascript中Object类原型对象的属性和方法
function  Person(name) {
javascript中Object类原型对象的属性和方法    
this .name = name;
javascript中Object类原型对象的属性和方法}

javascript中Object类原型对象的属性和方法javascript中Object类原型对象的属性和方法Person.prototype.setAge
= function (age) {
javascript中Object类原型对象的属性和方法    
this .age = age;
javascript中Object类原型对象的属性和方法}

javascript中Object类原型对象的属性和方法javascript中Object类原型对象的属性和方法Person.prototype.toString
= function () {
javascript中Object类原型对象的属性和方法    
return  'name:' + this .name + ' age:' + this .age;
javascript中Object类原型对象的属性和方法}

javascript中Object类原型对象的属性和方法
var  o = new  Person('zkj');
javascript中Object类原型对象的属性和方法o.setAge(
25 );
javascript中Object类原型对象的属性和方法alert(o)
javascript中Object类原型对象的属性和方法alert(o.hasOwnProperty(
" name " ));
javascript中Object类原型对象的属性和方法alert(o.hasOwnProperty(
" age " ));
javascript中Object类原型对象的属性和方法alert(o.hasOwnProperty(
" setAge " ));
javascript中Object类原型对象的属性和方法alert(o.hasOwnProperty(
" toString " ));
javascript中Object类原型对象的属性和方法
javascript中Object类原型对象的属性和方法alert(Person.prototype.hasOwnProperty(
" setAge " ));
javascript中Object类原型对象的属性和方法
// -->
javascript中Object类原型对象的属性和方法
</ SCRIPT >
javascript中Object类原型对象的属性和方法
javascript中Object类原型对象的属性和方法


6、propertyIsEnumerable
《javascript权威指南》如果用能 for( in )枚举的属性,这个方法返回true;
以下代码说明《javascript权威指南》是错的。自己定义的原型对象属性可以枚

举,但返回false

javascript中Object类原型对象的属性和方法< SCRIPT LANGUAGE = " JavaScript " >
javascript中Object类原型对象的属性和方法
<!--
javascript中Object类原型对象的属性和方法javascript中Object类原型对象的属性和方法
function  Person(name) {
javascript中Object类原型对象的属性和方法    
this .name = name;
javascript中Object类原型对象的属性和方法}

javascript中Object类原型对象的属性和方法javascript中Object类原型对象的属性和方法Person.prototype.setAge
= function (age) {
javascript中Object类原型对象的属性和方法    
this .age = age;
javascript中Object类原型对象的属性和方法}

javascript中Object类原型对象的属性和方法javascript中Object类原型对象的属性和方法Person.prototype.toString
= function () {
javascript中Object类原型对象的属性和方法    
return  'name:' + this .name + ' age:' + this .age;
javascript中Object类原型对象的属性和方法}

javascript中Object类原型对象的属性和方法
var  o = new  Person('zkj');
javascript中Object类原型对象的属性和方法o.setAge(
25 );
javascript中Object类原型对象的属性和方法alert(o.propertyIsEnumerable('setAge'));
javascript中Object类原型对象的属性和方法
var  desc = '';
javascript中Object类原型对象的属性和方法javascript中Object类原型对象的属性和方法
for ( var  key  in  o) {
javascript中Object类原型对象的属性和方法    desc
+= key + '  ';
javascript中Object类原型对象的属性和方法javascript中Object类原型对象的属性和方法    
if (o.hasOwnProperty(key)) {
javascript中Object类原型对象的属性和方法        desc
+= ' 是实例对象 ';
javascript中Object类原型对象的属性和方法javascript中Object类原型对象的属性和方法 }
else {
javascript中Object类原型对象的属性和方法        desc
+= ' 不是实例对象 ';
javascript中Object类原型对象的属性和方法 }

javascript中Object类原型对象的属性和方法javascript中Object类原型对象的属性和方法 
if (o.propertyIsEnumerable(key)) {
javascript中Object类原型对象的属性和方法        desc
+= ' 能被枚举 ';
javascript中Object类原型对象的属性和方法javascript中Object类原型对象的属性和方法 }
else {
javascript中Object类原型对象的属性和方法        desc
+= ' 不能被枚举 ';
javascript中Object类原型对象的属性和方法 }

javascript中Object类原型对象的属性和方法
javascript中Object类原型对象的属性和方法 desc
+= '/r/n';
javascript中Object类原型对象的属性和方法}

javascript中Object类原型对象的属性和方法alert(desc);
javascript中Object类原型对象的属性和方法
javascript中Object类原型对象的属性和方法
// -->
javascript中Object类原型对象的属性和方法
</ SCRIPT >
javascript中Object类原型对象的属性和方法
javascript中Object类原型对象的属性和方法

7、isPrototypeOf方法
《javascript权威指南》如果调用对象是实际参数指定的对象的原型对象返回

true. 看代码吧。
居然alert(Object.prototype.isPrototypeOf(Person));//true也是true.搞不懂

javascript中Object类原型对象的属性和方法< SCRIPT LANGUAGE = " JavaScript " >
javascript中Object类原型对象的属性和方法
<!--
javascript中Object类原型对象的属性和方法javascript中Object类原型对象的属性和方法
function  Person(name) {
javascript中Object类原型对象的属性和方法    
this .name = name;
javascript中Object类原型对象的属性和方法}

javascript中Object类原型对象的属性和方法javascript中Object类原型对象的属性和方法Person.prototype.setAge
= function (age) {
javascript中Object类原型对象的属性和方法    
this .age = age;
javascript中Object类原型对象的属性和方法}

javascript中Object类原型对象的属性和方法javascript中Object类原型对象的属性和方法Person.prototype.toString
= function () {
javascript中Object类原型对象的属性和方法    
return  'name:' + this .name + ' age:' + this .age;
javascript中Object类原型对象的属性和方法}

javascript中Object类原型对象的属性和方法
var  o = new  Person('zkj');
javascript中Object类原型对象的属性和方法o.setAge(
25 );
javascript中Object类原型对象的属性和方法alert(Person.prototype.isPrototypeOf(o));
// true
javascript中Object类原型对象的属性和方法
alert(Person.isPrototypeOf(o)); // false
javascript中Object类原型对象的属性和方法
alert(o.isPrototypeOf(Person.prototype)); // false
javascript中Object类原型对象的属性和方法
alert(Function.prototype.isPrototypeOf(Person)); // true
javascript中Object类原型对象的属性和方法
alert(Object.prototype.isPrototypeOf(Person)); // true
javascript中Object类原型对象的属性和方法//
-->
javascript中Object类原型对象的属性和方法
</ SCRIPT >

8、总结
看《javascript权威指南》前,就知道toString方法。现在知道了些其他的方法

,但让我更加混乱,《javascript权威指南》讲的也有错误。开发中建议大家除

了toString,其他属性方法不要覆盖也不要使用了。除了对这些方法十分清楚。就

我知道的javascript开源框架中好象没用到这些。