js中函数的原型
Posted zxq-zn
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js中函数的原型相关的知识,希望对你有一定的参考价值。
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>
以上是关于js中函数的原型的主要内容,如果未能解决你的问题,请参考以下文章