一、为什么使用对象
前端中,每一个变量、函数等的定义,都会在全局核心BOM(即Window)中创建一个实例,如下图所示

![1558169458754397.png SHWG[%]6{}}~1OZX)VQVFQX.png](https://img.php.cn/upload/image/199/509/311/1558169458754397.png)
![1558169462262334.png L]T)NKZE7XP]F~]YUR{9REA.png](https://img.php.cn/upload/image/431/386/648/1558169462262334.png)
二、解决方案
为了解决上面的情况,可以采用对象字面量的方法来定义,如下
var stu = {
course: 'JavaScript', // 属性
grade: 70, // 属性
getInfo: function () {
return this.course + '课程的成绩是: ' + this.grade;
}
};三、构造函数
作用就是初始化对象属性
var Stu = function (course, grade) {
// 初始化对象属性
this.course = course;
this.grade = grade;
};注意:如果在构造函数中添加了方法,那么每一个成员都会共有这个方法,会出现冗余的现象,浪费空间
为了解决“注意”中的问题,以下是解决方案:
利用prototype原型属性:将所有实例对象所共享的成员, 应该定义在该实例的构造函数的原型对象属性中(即共享或者继承某一个变量或者函数)
Stu.prototype.getInfo = function () {
return this.course + '课程的成绩是: ' + this.grade;
};注意:
Ⅰ Stu.prototype仍是一个对象
Ⅱ 声明在原型属性中的属性或者方法会保存在对象的__proto__属性中,即生成了一个指向构造函数原型的指针
访问这个方法:stu1.getInfo();
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号