手机版

js的Prototype属性及常用方法说明

时间:2021-11-08 来源:互联网 编辑:宝哥软件园 浏览:

函数:prototype每个构造函数都有一个名为prototype的属性(prototype,下面不翻译,使用原文)。这个属性非常有用:它声明了一个特定类的公共变量或函数。原型的定义您不需要显式声明原型属性,因为它存在于每个构造函数中。可以看看下面的例子:示例PT1的复制代码如下:函数test(){ } alert(test . prototype);//输出‘Object’给prototype添加属性如上图所示,prototype是一个对象,所以可以给它添加属性。添加到原型的属性将成为使用此构造函数创建的对象的公共属性。比如我下面有一个数据类型Fish,我希望所有的鱼都有这些属性:livesIn='water ',price=20;为了实现这一点,我可以将这些属性添加到构造函数Fish的原型中。示例PT2复制代码如下:函数鱼(名称、颜色){this。name=namethis.color=color} fish . prototype . livesin=' water ';fish . prototype . price=20;接下来,让我们制作一些鱼:复制代码如下: varfish 1=new fish(' mackarel ',' gray ');var fish2=新鱼('金鱼','橙色');var fish3=新鱼('鲑鱼','白');我们来看看fish的属性:复制代码如下: for(int I=1;I=3;I){ var fish=eval _ r(' fish ' I);//我刚收到指针提示(fish.name ',' fish.color ',' fish.lives in ',' fish.price)。}输出应该是:复制代码如下:' mackarel,gray,water,20 ' '金鱼,橙子,water,20 ' '鲑鱼,whitewater,20 '。如您所见,所有的鱼都有livesIn和price属性,我们甚至没有为每种不同的鱼专门声明这些属性。此时,当创建对象时,此构造函数会将其属性原型分配给新对象的内部属性_ _ prototype _ _上。这个对象使用这个__proto__来查找它的属性。您也可以使用原型向所有对象添加公共函数。这样做有一个好处:不需要每次构造对象时都创建和初始化这个函数。为了解释这一点,我们再来看一下示例DT9,并用prototype重写它:将函数示例PT3添加到具有prototype的对象中。复制代码如下:职能员工(姓名、工资){此。name=namethis .工资=薪水;} employee . prototype . getsalary=function getsalary function(){ return this . salary;} employee . prototype . addsalary=function addsalary function(加法){this.salary=this.salary加法;}我们可以像往常一样创建对象:复制代码如下: varboss 1=new employee(' Joan ',200000);var boss2=新员工(' Kim ',100000);var boss3=新员工(' Sam ',150000);并验证:复制代码如下: alert(boss 1 . getsalary());//输出200000 alert(boss 2 . getsalary());//输出100000 alert(boss 3 . getsalary());//输出150000以下是原型如何工作的示例。这个对象的每个实例(boss1、boss2、boss3)都有一个名为_ _ prototype _ _的内部属性,它指向其构造函数(Employee)的属性原型。当您执行getSalary或addSalary时,该对象将在其__proto__中找到并执行该代码。注意:此处没有代码副本(与示例DT8的图表进行比较)。

版权声明:js的Prototype属性及常用方法说明是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。