分享

javascript:原型链

 怡红公子0526 2022-10-26 发布于北京
  • 原型:构造函数.prototype/实例化对象.proto

    自定义对象中 构造函数直接写对象的话 会造成内存浪费,创建两个对象方法是一样的 但是是不同内存地址

    如果在全局创建函数,然后构造函数中赋值,可以避免内存浪费,但会造成另一个现象就是全局污染

    所以我们一般通过原型添加方法,可以避免函数全局污染 内存重复浪费的问题

    实例对象._proto_(一般以__开头的属性都是不希望被访问的私有属性) 属性是浏览器的隐藏(私有)属性,存在兼容问题,一般测试的时候使用,不建议通过这个属性去给原型添加属性

  • 构造函数:原型.constructor

  • 实例化对象:new 构造函数

    实例对象找属性或方法会先从自身找,如果找不到会从原型链一层一层找,找到则返回,到最后都找不到 返回undefined

  • 对象.hasOwnProperty("属性或方法名")

    判断属性或方法是否是在对象本身(原型链找的不算)

    返回:ture or false

  • "属性或方法名" in 对象

    判断属性或方法能否访问到(原型链能找到的都算)

    返回:ture or false

遍历对象自身成员

for( var k in p){
    console.log(k); //打印原型链上所有的成员
    if(p.hasOwnProperty(k)){
        console.log(k); //打印自身的成员
    }
}

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多