1.面向对象和面向过程 [ 理解 ]
1.1面向过程
1.理解: 做任何事情亲力亲为,对项目细节把控清晰 === 小兵思想,适合小型项目
1.2 面向对象
2.理解: 做事情找第三方帮助操作,对项目全局把控 === 指挥者思想,适合中大型项目
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TLUyn83z-1675852153874)(C:\Users\admin\Desktop\面对对象.png)]
2.类与实例对象
1.类
1.理解: 一类事物的统称,或者具有相同事物抽象描述
2.实例对象
1.理解: 任何东西(看得见 摸得着 感受到)都是对象 === 万物皆对象
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MFRHQxV6-1675852153875)(C:\Users\admin\Desktop\类与对象.png)]
3.ES5类构造
/**
* es5类写法: 构造函数 + 原型
*/
//构造函数
function Person(name, age) {
this.name = name;
this.age = age;
//实例对象自身方法: 所有实例对象不能共享该方法
this.show = function () { }
}
//原型: 添加共享方法: 所有实例对象共享
Person.prototype.eat = function () { }
Person.prototype.run = function () { }
//实例化对象
const p1 = new Person('张三', 30)
const p2 = new Person('李四', 25)
4. 原型
1.每个函数都有一个原型对象(prototype) === 显示原型
2.实例对象的隐式原型(__proto__)指向显示原型
3.在显示原型上添加的属性和方法,所有实例对象共享
4.原型上有个属性constructor指向构造函数本身
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tjmQH3Ca-1675852153876)(C:\Users\admin\Desktop\原型图解.png)]
5. 原型链
//1.概念:
由原型形成的链条就是原型链
//2.理解:
// 1.原型也是一个对象,它也是由构造函数Object实例化出来
// 2.原型对象的隐式原型__proto__指向构造函数Object的显示原型
console.log(Person.prototype.__proto__ === Object.prototype);
// 3.Object原型对象中contructor属性指向构造函数Object
console.log(Object.prototype.constructor === Object);
//4.Object的原型对象的隐式原型指向null
console.log(Object.prototype.__proto__ === null);
//3.作用
制定一套访问属性和方法的规则: 实例对象 ==> 1原型 ==> 2原型... ==> Object原型
prototype.proto === null);
//3.作用
制定一套访问属性和方法的规则: 实例对象 ==> 1原型 ==> 2原型… ==> Object原型
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Bhd7cbTn-1675852153876)(C:\Users\admin\Desktop\原型链图解.png)]