美文网首页
关于原型

关于原型

作者: gzlfight | 来源:发表于2018-07-15 16:04 被阅读0次

一、实例

        Person.prototype.name = 'sunny';

        function Person() {}

        var person = new Person();

        Person.prototype.name = 'cherry';

        console.log(person.name);  //cherry
        Person.prototype.name = 'sunny';

        function Person() {}

        Person.prototype.name = 'cherry';

        var person = new Person();

        console.log(person.name);   //cherry
        Person.prototype.name = 'sunny';

        function Person() {
            //var this = {__proto__ : Person.prototype}
        }

        var person = new Person();

        Person.prototype = {
            name : 'cherry'
        }

        console.log(person.name);  //sunny

这样理解

        var obj = {name : "a"};
        var obj1 = obj;
        obj = {name : "b"};

        Person.prototype = {name : "a"};
        __proto__ = Person.prototype;
        Person.prototype = {name : "b"};

new Person最后执行

        Person.prototype.name = 'sunny';

        function Person() {
            // var this = {__proto__ : Person.prototype}
        }

        Person.prototype = {
            name : 'cherry'
        }

        var person = new Person();

        console.log(person.name);   //cherry

二、隐式添加

        Person.prototype.name = 'abc';
        function Person() {
            // var this = {
            //  __proto__ : Person.prototype
            // }
        }

        var person = new Person();

三、继承

        // 继承  
        
        //1.圣杯模式
        function inherit(Target, Origin) {
            function F() {}
            F.prototype = Origin.prototype;
            Target.prototype = new F();
            Target.prototype.constructor = Target;
            Target.prototype.uber = Origin.prototype;
        }

        // 2.雅虎写法  闭包
        var inherit = (function () {
            var F = function () {}
            return function (Target, Origin) {
                F.prototype = Origin.prototype;
                Target.prototype = new F();
                Target.prototype.constructor = Target;
                Target.prototype.uber = Origin.prototype;
            }
        }());

        Father.prototype.lastName = "G";

        function Father() {}
        function Son() {}

        inherit(Son, Father);

        var son = new Son();
        var father = new Father();

相关文章

  • 关于原型

    一、实例 这样理解 new Person最后执行 二、隐式添加 三、继承

  • 前端面试必考题目(二)js原型和原型链

    这是关于javascript原型的第七次讨论 昨天 昨天我们开始讨论了关于js原型的面试题目,原型是javascr...

  • 项目开发-原型图与建表

    项目需求文档过后以其为依据开始制作原型图,构建原型图采用了在线原型图制作网站xiaopiu。 关于原型图制...

  • 关于JS中的原型和原型链

    目录 关于js 对象和原型 原型链 基于原型链的继承 参考资料ECMAScript 6 入门JavaScript原...

  • 原型链结构图

    原型链结构图 代码示例 原型链图示例 Function.prototype原型链 关于Function和自定义构造...

  • 原型、原型链、继承 | JavaScript

    原型与原型链 基本概念 关于原型和原型链的知识,首先来理解下以下几个知识点: 所有引用类型(Object、Arra...

  • 理解关于Function的原型链问题

    理解关于Function的原型链问题 关于Function的原型链问题的一些个人粗略理解,欢迎指正错误的地方 要理...

  • JavaScript类与继承

    一、ECMAScript 5标准中的类 1、定义原型类 2、原型类继承 下面是一典型的关于原型继承的代码。 3、静...

  • JS原型与原型链

    1.原型(公用属性) 2.原型链 关于原型链,你需要的知道的是:var XXX=new YYY()XXX的类型是对...

  • 关于对象_原型

    1.OOP 指什么?有哪些特性 OPP是指面向对象编程(Object Oriented Programmin),主...

网友评论

      本文标题:关于原型

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