Javascript-Document2

作用域链

① 变量必须"先声明,后使用"

② "内部环境" 可以访问"外部环境",反之不然

③ 变量的作用域是"声明时"决定,非运行时

Javascript-Document2


何为闭包:

彼此嵌套的两个函数,内部函数通过return返回出来就形成一个闭包函数


面向对象

创建对象: 

    1. 字面量方式创建对象

        // var obj = {成员名称: 值,......}

    对象的访问: 对象[成员名称] 或 对象.成员名称

Javascript-Document2

2. 构造函数方式创建对象

Javascript-Document2

3. 通过Object方式创建对象

Javascript-Document2


对象调用其他函数或方法:

1. 对象调用其他函数:就是给对象增加一个成员属性,该属性就是函数的另外一个名字(引用传递)

Javascript-Document2

2.对象调用其他方法: 为对象增加一个成员,该成员就是背调用方法的另一个名字

Javascript-Document2


call 方式函数执行:

1.  函数名字.call(函数内部this的引用, 实参,实参......);

// 在不给对象增加成员的情况下,使得对象可以调用其他函数

apply 方式函数执行:

 1. 函数名字.apply(函数内部this的引用,[实参, 实参, ......]);

Javascript-Document2


return 对实例化对象的影响

Javascript-Document2

对象继承(prototype)

原型继承:

    ① 函数.prototype = 对象   // 继承对象

    ② 函数.prototype.成员名称 = 值  // 继承单一成员

注: 函数继承对象(在实例化对象前边继承)

    构造函数同时继承多个对象, 后者覆盖前者

    继承对象 与 构造函数 拥有同名称成员,本身构造函数成员起作用

    构造函数同时 继承对象  和 单一成员,需要『先继承对象再继承单一成员』


对象访问成员类型 和 优先级

Javascript-Document2

遍历对象: for-in

for(var 成员变量 in object) {}

判断成员是自己的还是继承来的: 对象.hasOwnProperty(成员名称) 判断成员是否是本身。返回boolean