摘要: 在ES6之前并没有提供extends继承,我们可以通过构造函数+原型对象模拟实现继承,被称为组合继承。 核心原理:通过call()把父类型的this指向子类型的this,这样就可以实现子类型继承父类型的属性。 // 借用父构造函数继承属性 function Father(name, age) { / 阅读全文
posted @ 2019-12-14 18:16 perse 阅读(276) 评论(0) 推荐(0)
摘要: 通过原型对象,对原来的内置对象进行扩展自定义的方法。比如给数组增加自定义求和的功能 Array原型原本没有sum求和方法,通过以下形式为Array原型添加新的方法 Array.prototype.sum = function() { var sum = 0 for (var i = 0; i < t 阅读全文
posted @ 2019-12-14 17:09 perse 阅读(195) 评论(0) 推荐(0)
摘要: function Student(name, age) { this.name = name this.age = age } Student.prototype = { constructor: Student, study: function() { console.log('在学习') } } 阅读全文
posted @ 2019-12-14 16:17 perse 阅读(899) 评论(0) 推荐(2)
摘要: 对象原型(__proto__)和构造函数原型对象(prototype)里面都有一个属性constructor,constructor我们称为构造函数,因为它指向的是构造函数本身。 constructor主要用于记录该对象引用于哪个构造函数,它可以让原型对象重新指向原来的构造函数。 下面这个例子可以说 阅读全文
posted @ 2019-12-14 15:47 perse 阅读(1194) 评论(0) 推荐(0)
摘要: 对象都会有一个__proto__指向构造函数的prototype原型对象,对象之所以能够使用构造函数的prototype原型对象的方法,就是因为有__proto__原型的存在。 function Student(name, age) { this.name = name this.age = age 阅读全文
posted @ 2019-12-13 23:42 perse 阅读(336) 评论(0) 推荐(0)
摘要: 在es6之前,对象不是基于类创建的,而是用一种称为构造函数的特殊函数来定义对象和它们的特征。 当需要很多很多对象时,而这些对象又有相同的属性和方法。这时需要把它抽离出来,再大量的生成对象,这时候就需要构造函数。 创建对象可以通过以下三种方式: 1.对象字面量 var obj1 = {} 2.new 阅读全文
posted @ 2019-12-13 20:12 perse 阅读(662) 评论(0) 推荐(0)