• 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>
    

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

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

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

  • 相关阅读:
    函数的运用
    CSS颜色透明渐变
    白手起家:推广网站二十四招
    关于真正免费下载铃声
    改变生活的方法
    Hang in there,just for you
    写的浪漫
    计算机常用词汇IT开发
    马云在《赢在中国》对创业者的经典点评
    怎样才能把自己的网站做好(引用经济学理论知识)[转]
  • 原文地址:https://www.cnblogs.com/Dewumu/p/14395357.html
Copyright © 2020-2023  润新知