码迷,mamicode.com
首页 > Web开发 > 详细

js中函数的原型

时间:2019-10-03 10:28:55      阅读:81      评论:0      收藏:0      [点我收藏+]

标签:优先级   xxx   col   div   play   方法   技术   构造   原型   

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中函数的原型

标签:优先级   xxx   col   div   play   方法   技术   构造   原型   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!