{
this.name=name
//对象方法
this.Introduce=function(){
alert("My name is "+this.name)
}
}
//类方法
People.Run=function(){
alert("I can run")
}
//原型方法
People.prototype.IntroduceChinese=function(){
alert("我的名字是"+this.name)
}
//测试
var p1=new People("Windking")
p1.Introduce()
People.Run()
p1.IntroduceChinese()
1、对象方法理解就很简单了,主要是如果类生成一个实例,那么该实例就能使用该方法
2、类方法,不需要通过生成实例就可以使用的方法
3、原型方法主要是用来对JS已有的系统对象进行扩展而生的,例如Array数组没有什么方法,你可以为其增加原型方法,那么创建的数组就拥有了该方法。
1、对象方法包括构造函数中的方法以及构造函数原型上面的方法;
2、类方法,其实这里的类就是一个函数,在js中由于函数也是一个对象,所以可以为函数添加属性以及方法,这种方法在node中用的比较多;
3、原型方法一般用于对象实例共享,比如Person.prototype.sayName=function(){console.log(this.name)}在原型上面添加该方法,就能实现共享。这样就不用每一次初始化一个实例的时候,为其分配相应的内存了。
顶
0
踩
prototype 翻译过来是原型的意思,在 js 中特指对象的原型prototype 对象是 js 实现面向对象的一个重要机制
每个函数也是一个对象(划重点),他们对应的类是 function ,每个函数对象都有一个子对象 prototype
prototype 代表了该函数的原型,还表示了一个类的属性的集合
当用 new 来生成一个对象时, prototype 对象的属性将会成为实例化的对象的属性
使用场景:
我们把所有方法都放在一个函数内部,每一次通过 new 一个对象的时候,新创建的对象都会对类的 this 上的属性进行复制,所以这些新创建的对象都会有自己的一套方法,这样做对内存消耗很大,我们可以通过原型的方式去处理