-
如何准确判断一个变量是不是数组 ?
-
手写一个简易的jQuery,考虑插件和扩展性
-
class的原型本质怎么理解?
-
class 和继承
- constructor
- 属性
- 方法
-
不用class如何实现继承?
// 使用函数实现 Animal 类 function Animal () { this.a = 1 // 有一个属性 a } // 有一个原型方法 move Animal.prototype.move = function () { } // 使用函数实现 Dog 类,继承了 Animal 类 function Dog () { Animal.apply(this, arguments) this.d = 1 } // 让 Dog 的原型继承 Animal 的原型 let f = function () { } f.prototype = Animal.prototype Dog.prototype = new f() // 修改constructor Dog.prototype.constructor = Dog Dog.say = function () { }
-
使用class如何实现继承
class Dog extends Animal{ constructor(){ super() } }
-
类型判断 instanceof
[] instanceof Array // true
[] instanceof Object // true
{} instanceof Object // true
-
原型和原型链
-
原型
- 每个 class 都有显式原型 prototype
- 每个实例都有隐式原型 _proto_
- 实例的 _proto_ 指向对应 class 的prototype
-
基于原型的执行规则,获取属性 xialuo.name 或 执行方法 xialuo.sayhi( ) 时
- 先在自身属性和方法寻找
- 如果找不到则自动去隐式原型 __proto__ 中查找
-
原型链
-
Child.prototype.proto === Parent.prototype
-
-