例:判断是不是自有属性hasOwnProperty方法
自有属性和共有属性:
自有属性:直接保存在对象本地的属性
共有属性:保存在原型对象中,被所有子对象共享的属性
获取时:都可用对象.属性方法
赋值时:自有属性,必须:对象.属性 = 值
共有属性,必须:构造函数.prototype.属性 = 值
鉴别自有还是共有:
自有:var bool = obj.hasOwnProperty('属性名')
判断“属性名”是否是obj的自有属性
共有:不是自有,且obj.属性名!==undefined
其中:in:判断obj自己或obj的父对象中是否包含"属性名"。只要自己或父对象中包含,就	返回true。
共有:相同写的 属性名 in obj
if(obj.hasOwnProperty(pname)){
 console.log('自有属性')
 }else if(obj[pname]!==undefined){ // 可改写成: }else if(pname in obj){
 console.log('共有属性')
 }else {
 console.log('没有这个属性!')
 }
------------------------------------------------------------------------------------------------------
例:判断是不是自有属性hasOwnProperty方法 
//自有属性
 function Student(sname,sage){
 this.sname =sname;
 this.sage =sage;
 }
  //共有属性
 Student.prototype.intr=function(){
 console.log(`I am ${this.sname},I am ${this.sage}`)
 }
 //共有属性
 Student.prototype.className="初一二班";
 var lilei =new Student('Li Lei',11);
 var hmm =new Student('Han Meimei',12);
 //判断是不是自有属性函数
  function checkProperty(obj,pname){
  if(obj.hasOwnProperty(pname)){
 console.log('自有属性')
 }else if(obj[pname]!==undefined){ // 可改写成: }else if(pname in obj){
 console.log('共有属性')
 }else {
 console.log('没有这个属性!')
 }
 }
 checkProperty(lilei,"sname"); //自有
 checkProperty(hmm,"className");//共有
 checkProperty(lilei,"bal");//没有
var o={x:1}
console.log(o.hasOwnProperty("x")) //true
console.log(o.hasOwnProperty("y")) //false
------------------------------------------------------------------------------------------------------
    本博客主要记录自己的学习点滴~,文章来源于总结,还有在工作中实际碰到的问题以记录。
 
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号