宝哥软件园

javascript原型原型详解(比较基础)

编辑:宝哥软件园 来源:互联网 时间:2021-09-06

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);上面的代码只修改了对象原型,没有重置对象原型。

更多资讯
游戏推荐
更多+