首页 > Web开发 > 详细

js中函数的原型

时间:2019-10-03 10:47:01      阅读:96      评论:0      收藏:0      [点我收藏+]

js中每一个构造函数都有一个prototype的属性,prototype指向一个对象,而这个对象的属性和方法都会被构造函数的实例所继承,因此,需要一些共享的属性和方法可以写在构造函数的原型中

1  用prototype属性可以向构造函数添加可继承的属性和方法,注意constructor属性指向prototype对象所在的函数

    <script>
        function Person(){
        }
        Person.prototype = {
            constructor: Person,
            name: ‘xxx‘,
            age: 22,
            sayName: function(){
                console.log(this.name);
            }
        }
        var p = new Person();
        p.sayName();//‘xxx‘
        console.log(p.age);//22
    </script>

2  一个同名属性在构造函数和prototype对象中存在时,构造函数的实例采用构造函数里的this属性,优先级类似于:实例>构造函数>原型

    <script>
        function Person(){
            this.age = 233;//创建实例时赋给实例的属性
        }
        Person.prototype = {
            constructor: Person,
            name: ‘xxx‘,
            age: 22,
            sayName: function(){
                console.log(this.name);
            }
        }
        var p = new Person();
        console.log(p.age);//233
        p.age = 333;
        console.log(p.age);//333
    </script>

3 原型的继承

技术分享图片
    <script>
        function Person(){
            this.age = 233;//创建实例时赋给实例的属性
        }
        Person.prototype = {
            constructor: Person,
            name: ‘xxx‘,
            age: 22,
            sayName: function(){
                console.log(this.name);
            }
        }
        var p = new Person();
        console.log(p.age);//233
        p.age = 333;
        console.log(p.age);//333
        function Student(){

        }
        Student.prototype = new Person();//继承
        var s = new Student();
        console.log(s.name);//‘xxx‘
        s.name = ‘qqq‘;
        console.log(s.name);//‘qqq‘
    </script>
View Code

 

js中函数的原型

原文:https://www.cnblogs.com/Zxq-zn/p/11609903.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!