javascriptの中のhasOwn PropertyとisPrototypeOf
3580 ワード
ハスOwnProperty:オブジェクトが名前を与える属性やオブジェクトがあるかどうかを判断するために使用されます.ただし、この方法では、オブジェクトのプロトタイプチェーンにこの属性があるかどうかを確認できません.この属性はオブジェクト自身のメンバーでなければなりません.isProttypeOfは、そのプロトタイプチェーンのオブジェクトが指定されたオブジェクトのインスタンスに存在するかどうかを確認するために使用され、trueに戻ります.そうでなければfalseに戻ります.
1 for inは、カスタマイズ属性とプロトタイプチェーン属性を含む、objectのすべての属性を取得することができます.
for(var atr in object){
consolie.log(atr+「:」object[atr]);
)
2 hasOwnProperty()はカスタム属性しか取得できず、プロトタイプチェーンの属性は取得できません.
「str」.hasOwnProperty(「split」);false
Stering.property.hasOwnProperty(「split」);true
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
1 for inは、カスタマイズ属性とプロトタイプチェーン属性を含む、objectのすべての属性を取得することができます.
for(var atr in object){
consolie.log(atr+「:」object[atr]);
)
2 hasOwnProperty()はカスタム属性しか取得できず、プロトタイプチェーンの属性は取得できません.
「str」.hasOwnProperty(「split」);false
Stering.property.hasOwnProperty(「split」);true