WEB开发网
开发学院网页设计JavaScript Javascript实例代码讲解instanceof操作符 阅读

Javascript实例代码讲解instanceof操作符

 2012-04-15 09:16:00 来源:WEB开发网   
核心提示: 在JavaScript中,我们可以用instanceof操作符来判断对象是否是某个类的实例,Javascript实例代码讲解instanceof操作符,如果obj instaceof Class返回true,那么我们认为obj是Class的实例,obj要么由Class创建,要么由Class的子类创建

 在JavaScript中,我们可以用instanceof操作符来判断对象是否是某个类的实例,如果obj instaceof Class返回true,那么我们认为obj是Class的实例,obj要么由Class创建,要么由Class的子类创建。来自Java或其他强类型语言的开发者一定认为如果obj instaceof Class返回true,那么obj肯定拥有Class的所有属性。事实是这样么?我们看下面的代码:

Js代码

  1. function ClassA()
  2. {
  3. this.ma = 'ClassA';
  4. }
  5. ClassA.prototype.fa = function(){return 'prototype function';};
  6. function ClassB()
  7. {
  8. this.mb = 'ClassB';
  9. }
  10. ClassB.prototype = ClassA.prototype;
  11. var obja = new ClassA();
  12. alert(('ma' in obja) + ' ' + obja.hasOwnProperty('ma')); //output true true
  13. alert(('mb' in obja) + ' ' + obja.hasOwnProperty('mb')); //output false false
  14. alert(('fa' in obja) + ' ' + obja.hasOwnProperty('fa')); //output true false
  15. alert(('fb' in obja) + ' ' + obja.hasOwnProperty('fb')); //output true false
  16. alert(obja instanceof ClassA); //output true
  17. alert(obja instanceof ClassB); //output true
  18. var objb = new ClassB();
  19. alert(('ma' in objb) + ' ' + objb.hasOwnProperty('ma')); //output false false
  20. alert(('mb' in objb) + ' ' + objb.hasOwnProperty('mb')); //output true true
  21. alert(('fa' in objb) + ' ' + objb.hasOwnProperty('fa')); //output true false
  22. alert(('fb' in objb) + ' ' + objb.hasOwnProperty('fb')); //output true false
  23. alert(objb instanceof ClassA); //output true
  24. alert(objb instanceof ClassB); //output true

1 2 3 4  下一页

Tags:Javascript 实例 代码

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接