美文网首页
面向对象与原型(四)

面向对象与原型(四)

作者: 一江碎月 | 来源:发表于2017-11-07 15:57 被阅读0次

几个公式

  1. 对象.__proto__ === 构造函数.prototype

    • 由此可以延伸出 函数名.__proto__ === Function.prototype
    function Foo(){}
    
    var f = new Foo()
    
    alert(f.__proto__ === Foo.prototype) 
    alert(Foo.__proto__ === Function.prototype)
    
  2. 默认时,构造函数.prototype.constructor === 构造函数 ==== 原型.constructor

    function Foo(){}
    
    alert(Foo.prototype.constructor === Foo)
    

常用方法

  1. hasOwnProperty():判断对象是否拥有指定的属性—— 这个属性不能是从原型继承过来的。

    function Demo () {
    }
    var d = new Demo()
    alert(Demo.constructor) 
    alert(Demo.hasOwnProperty('constructor')) // false
    Demo.age = '1341'
    alert(Demo.hasOwnProperty('age')) // true
    

    调用 Demo.constructor 是有值输出的,但 hasOwnProperty 返回 false,因为 constructor 属性是 Demo 从其原型继承过来的。
    随后为 Demo 对象定义了 age 属性,所以最后一句输出的是 true。

  2. isPrototypeOf:判断调用者是不是参数的原型。、

    function Demo () {
    }
    var p = {};
    Demo.prototype = p;
    alert(p.isPrototypeOf(new Demo())); // true
    alert(p.isPrototypeOf(new Array())); // false
    

    由于 Object.prototype 是原型链的最顶层,所以但凡 Object.prototype 作为调用者时,结果永远为 true。

  3. in 操作符:判断对象中是否有指定的属性,无论该属性是在原型中还是在构造函数中

    function Demo(){
    
    }
    
    Demo.prototype.age = 1231
    var d = new Demo()
    alert('age' in d) // true
    

相关文章

  • 面向对象与原型(四)

    几个公式 对象.__proto__ === 构造函数.prototype。由此可以延伸出 函数名.__proto_...

  • 1.web前端基础储备之—js的面向对象风格以及原型和原型链

    javascript是面向对象风格,基于原型的语言。 目标:了解js面向对象和原型原型链的关系 面向对象(OOP)...

  • Javascript-高级篇之面向对象

    面向对象 基于原型的面向对象 基于原型的面向对象方式中,对象(object)则是依靠构造器(constructor...

  • lesson 5 面向对象及原型链 2021-04-29

    课程标题 面向对象及原型链 课程目标 面向对象思想 原型及原型链 继承 知识点 面向对象思想 原型链的指向 new...

  • 面向对象:JavaScript

    面向对象 面向对象组成 this指向 第一个面向对象 第一个面向对象加强版 第一个面向对象(this) 原型 原型...

  • JavaScript之面向对象编程

    五、面向对象编程 目录:面向对象原型继承、面向对象class继承(ES6引入的) 1.面向对象原型继承 类:模板 ...

  • 面向对象与原型

    对象的原型 每个对象都含有原型的引用,当查找属性时,若对象本身不具有该属性,则会查找原型上是否有该属性。对象的原型...

  • 面向对象与原型

    ECMAScript有两种开发模式:1.函数式(过程化),2.面向对象(OOP)。面向对象的语言有一个标志,那就是...

  • 介绍js中的原型

    原型 编程语言对面向对象的实现主流的有两种方式:基于类的面向对象和基于原型的面向对象。 基于类的面向对象 典型的语...

  • 面试题

    1、继承、原型、面向对象

网友评论

      本文标题:面向对象与原型(四)

      本文链接:https://www.haomeiwen.com/subject/hfsjmxtx.html