开辟空间的细节 构造函数里内存浪费的问题
作者:互联网
开辟空间的细节
- 什么时候会开辟堆空间的总结
-
- 有
new
就会开新的堆空间 - 遇到
function
声明函数也会开辟一个新空间
- 有
-
- 遇到
{}
或者[]
也会开辟一个新的堆空间
- 遇到
-
-
- {} 相当于 new Object
- [] 相当于是 new Array
-
- 目的:
-
- 复杂数据类型之间比较,比较的是地址
构造函数里内存浪费的问题
- 构造函数里如果写了方法,那意味着每次调用构造函数,都会一个新的空间放这个方法
- 那意味着如果创建10个对象,就浪费了10个空间,例如下方代码
function Person (name, age) {
this.name = name
this.age = age
this.sayHi = function () {
console.log('大家好')
}
}
- 这时候要解决构造函数里的方法内存浪费的问题
- 解决办法:使用
原型对象
,把方法放在原型对象
上即可!
function Person(name, age) {
this.name = name
this.age = age
}
// 写在原型对象上
Person.prototype.sayHi = function () {
console.log('大家好')
}
标签:function,浪费,age,内存,空间,new,构造函数,name 来源: https://blog.csdn.net/gaoyan426926/article/details/121911572