zoukankan      html  css  js  c++  java
  • JavaScript原型链

    <!doctype html>
    <html lang='en'>
    <head>
        <title>原型</title>
        <script>
        window.onload = function(){
            //apply()  call()区别
            function Cat(name,color){   //猫对象
                this.name = name;
                this.color = color;
            };
            var cat = new Cat();
            var o = {};
            Cat.apply(o,['111','222']);  //Cat函数在O对象中执行
            o.name;//"111"
            //call
            function Cat(name,color){   //猫对象
                this.name = name;
                this.color = color;
            };
            var cat = new Cat();
            var o = {};
            Cat.call(o,'aaa','bbb');  //Cat函数在O对象中执行
            o.name;//"aaa"
    
    
            function Animal(){   //动物对象   父
                this.type = '动物'
            };
            Animal.prototype.type2='动物';
            function Cat(name,color){   //猫对象   子
                this.name = name;
                this.color = color;
            };
            Cat.prototype = Animal.prototype;
            var cat = new Cat("大明","黄色");   //实例化
            console.log(cat.type);
    
    
            function People() {
                this.name='sonia';
                this.sayName= function() {console.log(this.name)};
            };
            People.prototype.walk="walk";
            var p1=new People();
            p1.name="p1";
            p1.sayName= function() {console.log('p1')};
            var p2=new People();
            p2.name="p1";
            p2.sayName= function() {console.log('p2')};
    
    
            //原型链
            function F1(){
                this.name1='1'
            };
            function F2(){
                this.name2='2'
            };
            function F3(){
                this.name3='3'
            };
            F2.prototype = new F1();
            F3.prototype = new F2();
            var ff = new F3();
            console.log(ff.name2);
            //修改原型数据
            function F1(){
                //this.name1='1'
            };
            F1.prototype.name1 = 'f1';
            function F2(){
                this.name2='2'
            };
            function F3(){
                this.name3='3'
            };
            F2.prototype = new F1();
            F3.prototype = new F2();
            var ff = new F3();
            console.log(ff.__proto__.__proto__.__proto__.name1 = 'abc');
    	    console.log(F1.prototype);
    
            //删除原型数据
            function F1(){
                //this.name1='1'
            };
            F1.prototype.name1 = 'f1';
            function F2(){
                this.name2='2'
            };
            function F3(){
                this.name3='3'
            };
            F2.prototype = new F1();
            F3.prototype = new F2();
            var ff = new F3();
            delete ff.__proto__.__proto__.__proto__.name1;
    	    console.log(F1.prototype);
    
            //原型链    构造函数 /原型/实例 的关系
            //函数对象中有prototype   原型对象prototype里有constructor属性,指向原型对象所属的构造函数
            //对象都有__proto__属性  指向函数的原型对象
        }
        </script>
    </head>
    <body>
        
    </body>
    </html>
    

    本博客所有文章仅用于学习、研究和交流目的,欢迎非商业性质转载。

    博主的文章没有高度、深度和广度,只是凑字数。由于博主的水平不高,不足和错误之处在所难免,希望大家能够批评指出。

    博主是利用读书、参考、引用、抄袭、复制和粘贴等多种方式打造成自己的文章,请原谅博主成为一个无耻的文档搬运工!

  • 相关阅读:
    总结一下矩阵的基本操作
    洛谷|P4281 [AHOI2008]紧急集合 / 聚会
    CQYZ OJ|Contest 133|祖孙询问
    博客主题分享
    USACO1.1|黑色星期五Friday the Thirteenth
    USACO1.1.2|贪婪的送礼者
    POJ1664|DFS水题
    树状数组的区间查询与区间修改
    N0lP2018爆零记录
    A了一道dijkstra板子
  • 原文地址:https://www.cnblogs.com/Dewumu/p/14395357.html
Copyright © 2011-2022 走看看