您的位置:首页 > Web前端 > javascript > 正文

isPrototypeOf和hasOwnProperty的区别

更多 时间:2014-8-19 类别:Web前端 浏览量:1628

isPrototypeOf和hasOwnProperty的区别

isPrototypeOf和hasOwnProperty的区别

一、isPrototypeOf


isPrototypeOf是用来判断指定对象object1是否存在于另一个对象object2的原型链中,是则返回true,否则返回false。 


格式如下: 


object1.isPrototypeOf(object2); 


object1是一个对象的实例; 
object2是另一个将要检查其原型链的对象。 

备注


1、原型链可以用来在同一个对象类型的不同实例之间共享功能。 
2、如果 object2 的原型链中包含object1,那么 isPrototypeOf 方法返回 true。 
3、如果 object2 不是一个对象或者 object1 没有出现在 object2 中的原型链中,isPrototypeOf 方法将返回 false。 

 

 

二、hasOwnProperty 


hasOwnProperty判断一个对象是否有名称的属性或对象,此方法无法检查该对象的原型链中是否具有该属性,该属性必须是对象本身的一个成员。 


如果该属性或者方法是该 对象自身定义的而不是器原型链中定义的 则返回true;否则返回false; 


格式如下:


object.hasOwnProperty(proName); 
判断proName的名称是不是object对象的一个属性或对象。

 

 

三、isPrototypeOf和hasOwnProperty的实例

 

  •  
  • JScript 代码   复制
  • 
    
            function siteAdmin(nickName,siteName){
    
                this.nickName=nickName;
    
                this.siteName=siteName;
    
            }
    
            siteAdmin.prototype.showAdmin = function() {
    
                alert(this.nickName+""+this.siteName+"的站长!")
    
            };
    
            siteAdmin.prototype.showSite = function(siteUrl) {
    
                this.siteUrl=siteUrl;
    
                return this.siteName+"的地址是"+this.siteUrl;
    
            };
    
            var matou=new siteAdmin("愚人码头","WEB前端开发");
    
            var matou2=new siteAdmin("愚人码头","WEB前端开发");
    
            matou.age="30";
    
    //      matou.showAdmin();
    
    //      alert(matou.showSite("http://www.css88.com/"));
    
            alert(matou.hasOwnProperty("nickName"));//true
    
            alert(matou.hasOwnProperty("age"));//true
    
            alert(matou.hasOwnProperty("showAdmin"));//false
    
            alert(matou.hasOwnProperty("siteUrl"));//false
    
            alert(siteAdmin.prototype.hasOwnProperty("showAdmin"));//true
    
            alert(siteAdmin.prototype.hasOwnProperty("siteUrl"));//false
    
            alert(siteAdmin.prototype.isPrototypeOf(matou))//true
    
            alert(siteAdmin.prototype.isPrototypeOf(matou2))//true
    
    			

     

  •  

    标签:javascript
    您可能感兴趣