zoukankan      html  css  js  c++  java
  • 例:判断是不是自有属性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
    ------------------------------------------------------------------------------------------------------
  • 相关阅读:
    三行Python代码查询IP
    剑指offer面试题29:数组中出现次数超过一半的数字
    【简】题解 AWSL090429 【数塔问题】
    Re.常系数齐次递推
    Re.多项式除法/取模
    【翻译】A simple stone game
    Re.多项式求逆
    Re.FFT
    题解 P4783 【【模板】矩阵求逆】
    关于win10企业版在极域电子教室软件 v4.0 2015 豪华版的全屏控制下如何取得自由
  • 原文地址:https://www.cnblogs.com/liubingyjui/p/10154549.html
Copyright © 2011-2022 走看看