什么是面向对象编程?
面向对象的特性
=============
对象
对象的继承
原型 prototype 及 原型链
https://www.yuque.com/yejielin/mypn47/hat5qx
对象的继承方案
https://www.yuque.com/yejielin/mypn47/fmgnl3
内置对象(原生对象)
https://www.yuque.com/yejielin/mypn47/oszhco
原生对象原型
Object、Array、String 等,都在原型上定义了很多方法,但不推荐,这样做很可能:
1、造成误会,
2、引发命名冲突(比如一个名称在某个浏览器实现中不存在,在另一个实现中却存在)。
3、意外重写原生的方法。
// 给内置对象String定义新的方法
String.prototype.startsWith = function (text) {
return this.indexOf(text) === 0;
};
let msg = "Hello world!";
console.log(msg.startsWith("Hello")); // true
原型与继承的一些方法
https://www.yuque.com/yejielin/mypn47/tz7fpo
原型关系图
类 class
类就是对象通过原型和原型链继承的语法糖(简化操作),是ES6版本(又叫ES2015)开始出现的
https://www.yuque.com/yejielin/mypn47/rkyfne
对象的多态
再通俗点说,就是同一个函数,不同的参数,就执行不同的方法,得到不同的结果。
不同的2个参数
同一个函数
得到不同结果