您的位置:首页 > Web前端 > JavaScript

JavaScript原型prototype属性

2017-10-27 15:47 260 查看

一、什么是prototype?

  prototype是一个对象,是构造函数的实例对象的原型。

二、prototype什么时候出现?

  函数创建时他就会创建,在js中万物皆对象。每一个函数都是一个对象,函数对象都有自己的prototype。

三、prototype用来做什么?

  prototype是函数实例对象的原型,函数实例的对象可以引用原型上面的属性。存放构造出来的对象
共同的东西,修改这里面的属性,构造出来的对象属性也会修改。

四、关于构造函数的prototype必须要懂的知识点

  JavaScript中没有类,一切都是对象模拟出来的。修改函数的prototype后,之前出来的创造的实例
对象是不受影响的。只有之后创造的实例对象才能公用之前修改的原型对象。
  详解:http://blog.csdn.net/admin9527_/article/details/78361780 里面有详细描述。
<script type="text/javascript">
function preson(){}
preson.prototype = {name:"刘云"}
var p1 = new preson();
console.log(p1.name);//刘云
var p2 = new preson();
console.log(p2.name);//刘云
console.log(p1.__proto__ === p2.__proto__);//true
preson.prototype = {name :"赵付泉"}
preson.prototype.age = 18;
var p3 = new preson();
console.log(p1.age);//undefined
console.log(p3.age);//18
console.log(p1.__proto__ === p3.__proto__);//false
</script>


  p1和p2 都是引用原型上面的名字,他们类型和值是一样的所以是true。
修改原型上面的属性,之前创造的实例是不受影响的。因为他们不属于引用关系。
详解:http://blog.csdn.net/admin9527_/article/details/78361780 里面有详细描述。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: