首页 > 代码库 > 面向对象的一些方法

面向对象的一些方法

原型函数中有些方法和属性我们也一定要知道,有时候我们需要他们来判断一些东西,以下是我们常用到一些方法:

1:toString();

2:hasOwnProperty

3:isPrototypeOf

4:propertyIsEnumerable

5:instanceof

6:Object.defineProperty

第一种(toString):它一般是用来检测内置对象的类型,它不能用来检测构造函数和对象字面两,他们检测出来的结果都是”[object  Object]”,它的用法是,它一般不会单独用toString(),因为任何对象有一个toString(),

技术分享

除了构造函数和对象字面量之外,它输出的结果的格式都是:

技术分享

第二种(hasOwnProperty):它的作用是用来判断一个对象是否拥有自己的属性(也就是说一个属性是否是它自己的属性),如果返回值是true,那属性是他自己的,反而是false,那这属性是继承过来的.它的用法是:

技术分享

因为a是它的属性,所以它输出的应该是true.

第三种(isPrototypeOf):它的作用是判断当前的对象是否是参数对象的原型对象,它也是靠返回值来判断的,返回值是true,那当前对象就是参数对象的原型,反之是false,那当前对象不是参数对象的原型函数.

技术分享

实例中返回值应该是true,说明American.prototype是jaydon的原型对象.

第四种(propertyIsEnumerable):它的功能是判断对象的某个属性是否可以枚举,

技术分享

可以被枚举的,返回值是true,反之为false

它还可以用来定义一个属性,那个属性可以被枚举,也可以不被枚举,取决语中间的一个属性,它要跟第六个Object.defineProperty一起用:

技术分享

其中的enumerable的值决定是否能被枚举,如果为true,那定义的属性可以被枚举,反之是不能被枚举.

第五种(a  instanceof   b):它的功能是判断a是否b的实例:

技术分享

实例中返回值是true,那apple是computer的实例.

第六种(Object.defineProperty):它的功能是可以获取和设置属性值,它里面有get和set,分别代表的是设置和获得,只有get时,是可读不可写,只有set时是可写不可读,都没有和都有的,代表可读可写.

技术分享

如果你设置的35,执行set时就执行不下去了,到get时得到是0,如果设置的大于50,最后得到的就是你设置的值.

第六种还可以用来给属性重新赋值:

技术分享

其中把false改为true,那就可以重新赋值.

上面就是一些常用的判断方法,这些我们经常会用到的,需要记住的.

 

 

面向对象的一些方法