JavaScript原型prototype属性

来源:互联网 发布:unix和linux和windows 编辑:程序博客网 时间:2024/05/21 21:02

一、什么是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__);//truepreson.prototype = {name :"赵付泉"}preson.prototype.age = 18;var p3 = new preson();console.log(p1.age);//undefinedconsole.log(p3.age);//18console.log(p1.__proto__ === p3.__proto__);//false</script>

  p1和p2 都是引用原型上面的名字,他们类型和值是一样的所以是true。
修改原型上面的属性,之前创造的实例是不受影响的。因为他们不属于引用关系。
详解:http://blog.csdn.net/admin9527_/article/details/78361780 里面有详细描述。
原创粉丝点击