坪山网站建设哪家便宜,个人建站项目,潍坊市建设厅网站,网站 项目方案文章目录 一、继承二、原型三、原型和实例关系的检测 一、继承
面向对象三大特点#xff1a;封装#xff0c;继承#xff0c;多态 封装#xff1a;打包继承#xff1a;一个对象A不具有某个功能a#xff0c;通过某种方式使用了对象B的a功能 的过程多态#xff1a;对象或… 文章目录 一、继承二、原型三、原型和实例关系的检测 一、继承
面向对象三大特点封装继承多态 封装打包继承一个对象A不具有某个功能a通过某种方式使用了对象B的a功能 的过程多态对象或功能的多种形态在使用某个对象时不关心从哪来在封装某个对象时不关心将要在哪被使用 继承 构造函数执行之后得到的实例继承了原型身上的方法实例继承了类的原型类与类之间的继承 继承方式 构造函数继承改变this指向继承 callapplybind简单方便易操作非常易于做多继承只能继承构造函数内的属性或方法不能继承原型身上的属性或方法 原型对象继承 其实就是在拷贝原型对象同时注意深浅拷贝只能继承原型对象上的属性或方法不能继承构造函数内的属性或方法可以实现多继承 原型链继承 既能继承构造函数内的属性或方法又能继承原型上的属性或方法但是不方便处理参数不适合多继承 混合组合继承 构造函数原型对象构造函数原型链集合了各种方式的优点 ES6新增的class的继承 语法层面上的继承父类是子类的超类原理构造函数原型继承
二、原型
隐式原型对象__proto__一般存在于对象身上用于指向创建该对象的构造函数的prototype。显示原型对象prototype只存在于函数身上除了箭头函数用来被通过自身创建的对象的__proto__指向。隐式原型的使用规则 每个对象都有__proto__对象每次在使用属性或方法时如果自身不存在都会沿着__proto__的指向依次查找直到Object.prototype一个构造函数可以创建多个实例如果给构造函数的prototype添加方法或属性将来的每个实例都可以访问达到节省内存的效果构造函数的prototype类似于将来所有实例的公共空间提供公共方法被实例使用 补充构造函数的prototype自带了一个constructor的属性用来标记当前prototype对象所属的函数
三、原型和实例关系的检测
关键字instanceof 语法实例 instanceof 构造函数 显式原型对象的方法isPrototypeOf() 语法构造函数.prototype.isPrototypeOf(实例) 有关系无论多少层都返回true否则返回false小技巧可以利用该关系检测方式区分对象数组