首页前端开发正文

构造函数的方法存在浪费内存的问题,怎么解决?

朱绪2017-07-072418JavaScript

构造函数的方法虽然好用,但是存在着浪费内存的问题。

为啥呢?比方说调用各自的play方法,都会开辟一个新的内存空间存放。

构造函数的方法存在浪费内存的问题

xiaoming.play===xiaohua.play比较的是各自的内存地址,因为我们每次调用Student里的方法,他都会各自开辟一个新的内存空间,从而导致内存浪费!

那么,这个问题怎么解决呢?

咱们需要晓得构造函数里的一个方法prototype(原型——当然它本身也是一个对象),需要记住的是:每一个构造函数里都有一个prototype属性。

我们可以这样去理解:它就是个放东西的盒子,它存放在构造函数里,可以把那些不变的方法,直接定义在这个盒子里(prototype上),如此一来所有的实例对象就可以共享这些方法啦!

Student.prototype.play=function(){
    console.log("我会踢足球");
}

这样改的话结果就是true了,也就实现了方法共享且不浪费内存空间。