javascript原型原型详解(比较基础)
javascript的原型原型简介:prototype是javascript中非常重要的概念,必须掌握。如果掌握不好,基本上是不可能用好或者学好js的。而且这个概念有点难,可能对于第一次接触的朋友来说有点难。在这里,我们将通过代码示例简要介绍原型的用法。
一、基本概念33-360
每个函数都有一个原型属性。此属性是一个指针,可以指向将由构造函数创建的对象实例共享的对象,也就是说,将继承此对象。摘要:prototype指向的对象由构造函数创建的对象实例共享。创建的对象实例有一个内部属性[[原型]],它是构造函数原型指向的对象的指针。先看一段代码:
scriptfunction antzone(名称,年龄){ this . web name=name;this.age=年龄;} ant zone . prototype . getname=function(){ return this . web name;}var oantzone=new antzone ('we ',10);console . log(oantzone . getname());/脚本渲染:
下图是:
上图基本说明了原型的作用。二.代码示例:示例1 :
函数antzone(名称,年龄){ this . web name=name;this.age=年龄;}var obj={ address: '江苏徐州' }var oantzone=new antzone ('we ',10);antzone.prototype=objconsole . log(oantzone . address);看了上面的代码,很多朋友可能会认为输出值是‘江苏徐州’,但实际输出内容是未定义的,因为使用构造函数创建对象oantzone时,oantzone对象的内部属性[[Prototype]]会指向antzone()构造函数的原型所指向的对象。那么antzone.prototype=obj就是reset构造函数的原型,而oantzone的内置属性[[Prototype]]指向原始对象,自然oantzone.address是未定义的。示例2 :
scriptfunction antzone(名称,年龄){ this . web name=name;this.age=年龄;}var obj={ address: '江苏徐州' } antzone.prototype=objVar oantzone=new antzone ('we ',10);console . log(oantzone . web name oantzone . address);/script这段代码和之前的代码唯一的区别就是第八行和第九行互换了,这样就可以输出‘江苏徐州’,这并不难理解,因为对象实例是在重置原型之后创建的。示例3 :
函数antzone(名称,年龄){ this . web name=name;this.age=年龄;}var obj={ address: '江苏徐州' } ant zone . prototype . add=obj;Var oantzone=new antzone ('we ',10);console . log(oantzone . add . address);上面的代码只修改了对象原型,没有重置对象原型。
版权声明:javascript原型原型详解(比较基础)是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。