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代码
- function ClassA()
- {
- this.ma = 'ClassA';
- }
- ClassA.prototype.fa = function(){return 'prototype function';};
- function ClassB()
- {
- this.mb = 'ClassB';
- }
- ClassB.prototype = ClassA.prototype;
- var obja = new ClassA();
- alert(('ma' in obja) + ' ' + obja.hasOwnProperty('ma')); //output true true
- alert(('mb' in obja) + ' ' + obja.hasOwnProperty('mb')); //output false false
- alert(('fa' in obja) + ' ' + obja.hasOwnProperty('fa')); //output true false
- alert(('fb' in obja) + ' ' + obja.hasOwnProperty('fb')); //output true false
- alert(obja instanceof ClassA); //output true
- alert(obja instanceof ClassB); //output true
- var objb = new ClassB();
- alert(('ma' in objb) + ' ' + objb.hasOwnProperty('ma')); //output false false
- alert(('mb' in objb) + ' ' + objb.hasOwnProperty('mb')); //output true true
- alert(('fa' in objb) + ' ' + objb.hasOwnProperty('fa')); //output true false
- alert(('fb' in objb) + ' ' + objb.hasOwnProperty('fb')); //output true false
- alert(objb instanceof ClassA); //output true
- alert(objb instanceof ClassB); //output true
Tags:Javascript 实例 代码
编辑录入:爽爽 [复制链接] [打 印]更多精彩
赞助商链接