<script>
// 构造函数
function Student(name, age) {
this.name = name;
this.age = age;
}
// 原型对象
// 公共的属性和方法放在原型对象上,可减少内存浪费
// Student.prototype.class = 20;
// Student.prototype.studyFunc = function () {
// console.log(this, '我的名字是' + this.name);
// }
// 上面的代码等价于下面这样写,这是推荐的写法
Student.prototype = {
// 当修改原型对象的引用时,需要自己添加constructor属性,这个属性不可缺少
constructor: Student,
class: 20,
studyFunc() {
console.log(this, '我的名字是' + this.name);
}
}
const st1 = new Student('Echo', 12);
const st2 = new Student('Shally', 15);
st1.studyFunc(); // Student {name: 'Echo', age: 12} '我的名字是Echo'
console.log(st1.class); // 20
console.log(st1.studyFunc === st2.studyFunc); // true
// Student.prototype的constructor属性指向原型对象所在的构造函数
console.log(Student.prototype); //
// 给数组扩展方法:求最大值
Array.prototype.maxNum = function () {
return Math.max(...this);
}
// 给数组扩展方法:求和
Array.prototype.sums = function () {
return this.reduce((prev, item) => prev + item, 0);
}
console.log([1, 2, 3, 4, 5, 6].maxNum());
console.log([1, 2, 3, 4, 5, 6].sums());
</script>
15、js - 构造函数的原型对象
于 2023-06-06 14:48:18 首次发布