怎么在JavaScript中使用原型方法给类添加方法

  介绍

怎么在JavaScript中使用原型方法给类添加方法?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

<强> 1。如何定义一个简单的类吗?

以下是一个没有任何属性和方法的类的定义:

function  MyClass () {};

你可能会想,这不就是个简单的函数声明?没错,这个函数就是一个类的定义的实现。如何使用这个类呢?看下面的代码:

var  cls1 =, new  MyClass ();

这样,利用<代码>新>

<强> 2。给类增加属性和方法

function  MyClass(姓名、年龄){   this.name 才能=,名称;   时间=this.age 才能;年龄;   }   var  cls1 =, new  MyClass (“lily", 18);   警报(cls1.name);

从上面的代码可以看出,在函数内使用这个就能给函数本身增加属性值。而在上面的代码中就给myClass函数增加了姓名和年龄属性。

同样,还可以利用<代码> 给这个类增加一个toString方法,代码如下:

function  myClass(姓名、年龄){   this.name 才能=,名称;   时间=this.age 才能;年龄;   this.toString才能(),=,函数(){   ,,,警报(this.name  +“:“+, this.age);   ,,};   }   var  cls1 =, new  MyClass (“liming" 10);   cls1.toString ();

我们已经成功的给MyClass增加了toString方法。另外也可以用以下代码来添加方法:

function  MyClass(姓名、年龄){   this.name 才能=,名称;   时间=this.age 才能;年龄;   }   var  cls1 =, new  MyClass (“liming" 10);   cls1.toString(),=,函数(){   ,,,,,,,,,,,警报(this.name  +“:“+, this.age);   ,,,,,,,,,};   cls1.toString();,//,(李明:10)   var  cls2 =, new  MyClass (“zhang" 10);   cls2.toString();,//报错

虽然这样也能给这个类添加一个方法,但这种方式只是给cls1这个实例增加了方法,并未给MyClass本身增加方法。

cls2并不存在toString方法。

<强> 3。引出原型

从上面我们已经知道要给MyClss类的本身增加方法,需要讲方法定义在MyClass这个函数内部,这样的话,每声明一个新的实例,就会将MyClass本身复制一遍,这显然不是最优的做法。

既然不能将一个类(函数)所包含的方法都定义在函数的内部,那么,如何来给一个类添加方法呢?这就需要用到函数的原型属性了。

每一个函数都会包含一个原型属性,这个属性指向了一个原型对象,我们可以指定函数对应的原型对象。如果不指定,则函数的原型属性将指向一个默认的原型对象,并且次默认的原型对象的构造函数属性又会指向该函数。

当用构造函数创建一个新的对象时,新的对象会获取构造函数的原型属性所指向的原型对象的所有属性和方法,这样一来,构造函数对应的原型对象所做的任何操作都会反映到它所生成的对象上,所有的这些对象将共享与构造函数对应的原型对象的属性和方法。

虽然新创建的对象可以使用它的构造函数所指向的原型对象的属性和方法,但不能像构造函数那样直接调用原型对象(对象没有原型属性)。

简而言之,就是如果我们使用函数的原型对象来给函数添加方法,那么在创建一个新的对象的时候,并不会复制这个函数的所有方法,而是指向了这函数的所有方法。

具体看下面的代码:

function  MyClass(姓名、年龄){   this.name 才能=,名称;   时间=this.age 才能;年龄;   }   时间=MyClass.prototype.toString 函数(){   ,//}   var  cls1 =, new  MyClass (“liming" 10);   cls1.toString ();//var  cls2 =, new  MyClass (“zhang" 10);   cls2.toString ();

如果要加入多个方法,也可以使用下面的方式:

function  MyClass(姓名、年龄){   this.name 才能=,名称;   时间=this.age 才能;年龄;   }   MyClass.prototype =, {   toString才能:函数(){   ,,//,,},   sayHellow才能:函数(){   ,,//,,}   }; JavaScript有什么特点

1, js属于一种解释性脚本语言;2,在绝大多数浏览器的支持下,js可以在多种平台下运行,拥有着跨平台特性;3,js属于一种弱类型脚本语言,对使用的数据类型未做出严格的要求,能够进行类型转换,简单又容易上手;4,js语言安全性高,只能通过浏览器实现信息浏览或动态交互,从而有效地防止数据的丢失;5,基于对象的脚本语言,js不仅可以创建对象,也能使用现有的对象。

怎么在JavaScript中使用原型方法给类添加方法