• JS 8-1 OOP概念与继承


    function Foo(){
        this.y=2;
    }
    
    typeof Foo.prototype;
    Foo.prototype.x = 1;
    var obj3= new Foo();
    
    obj3.x;
    obj3.y;

    Foo构造器 this指向obj3对象。obj3的原型(__proto__)会指向Foo.prototype。
    prototype的作用是Foo.prototype会用作new对象的原型。
    即obj3.__proto__ == Foo.prototype //ture

    Foo.prototype 
    结果:
    constructor : ƒ Foo() 
    __proto__ : Object

    constructor属性指向Foo对象本身
    即Foo.prototype.constructor == Foo(true)
    __proto__ 是非标准原型。此处是Foo.prototype的原型
    一般的对象比如{}都有__proto__属性

     注意:prototype是函数的一个内置对象。__proto__是对象的非标准原型

    function Person(name,age){
    this.name = name;
    this.age =age;
    }

    一般调用this指向全局对象,浏览器中为window
    new调用,this指向一个空对象,这个空对象的原型为Person.prototype。this作为return值。

    Object.create(Person.prototype)创建一个空对象,并且这个对象的原型指向Person.prototype

    var o = {f:function(){return this.a+ this.b}};
    var p = Object.create(o)
    p.__proto__ == o //true

    以上p的原型指向o

    var a ={x:1}
    a.__proto__ == Object.getPrototypeOf(a) //true
    Object.getPrototypeOf获取对象的原型
  • 相关阅读:
    Diameter 消息格式解析
    我们活成了不想的样子
    《活着》片段
    我的庚子年
    <<甄嬛传>>后感
    对于根目录磁盘满的了问题
    phpstorm注册账号
    mac安装nginx
    samba文件共享及账户映射
    我们的读书会
  • 原文地址:https://www.cnblogs.com/chrisghb8812/p/9614030.html
Copyright © 2020-2023  润新知