JavaScript面向对象主要知识点小结,基于ECMAScript 5.
构造函数
|
|
给一个对象赋予属性或者方法
|
|
原型(prototype)
why we use prototype? -> 便于方法的重用
与构造函数模式相比,使用原型对象的好处是可以让所有对象实例共享它所包含的属性和方法。
运行时没找到函数的方法时,对象会首先找它的类的prototype方法
Demo1
|
|
Demo2
|
|
|
|
原型链(prototype chain)
|
|
继承(Inheritance)
Demo1
|
|
上面的例子如果Parent有参数,将存在以下问题:
|
|
Demo2
解决父类参数问题
|
|
Demo3:继承的一个实例
创建一个矩形
|
|
this关键字
Demo:
|
|
修改上面demo:
|
|
|
|
严格模式下的this
|
|
强制修改函数上下文的方法
用Object.bind()代替this
|
|
上面code将输出
|
|
使用Object.call/Object.apply执行上下文
call/apply方法都为调用Object方法,区别是apply将所有参数放到一个数组中去
|
|
补充其他
自执行函数
why we use it? ->避免泄露全局变量
|
|
闭包作用域
|
|