Javascript-Document2
作用域链
① 变量必须"先声明,后使用"
② "内部环境" 可以访问"外部环境",反之不然
③ 变量的作用域是"声明时"决定,非运行时
何为闭包:
彼此嵌套的两个函数,内部函数通过return返回出来就形成一个闭包函数
面向对象
创建对象:
1. 字面量方式创建对象
// var obj = {成员名称: 值,......}
对象的访问: 对象[成员名称] 或 对象.成员名称
2. 构造函数方式创建对象
3. 通过Object方式创建对象
对象调用其他函数或方法:
1. 对象调用其他函数:就是给对象增加一个成员属性,该属性就是函数的另外一个名字(引用传递)
2.对象调用其他方法: 为对象增加一个成员,该成员就是背调用方法的另一个名字
call 方式函数执行:
1. 函数名字.call(函数内部this的引用, 实参,实参......);
// 在不给对象增加成员的情况下,使得对象可以调用其他函数
apply 方式函数执行:
1. 函数名字.apply(函数内部this的引用,[实参, 实参, ......]);
return 对实例化对象的影响
对象继承(prototype)
原型继承:
① 函数.prototype = 对象 // 继承对象
② 函数.prototype.成员名称 = 值 // 继承单一成员
注: 函数继承对象(在实例化对象前边继承)
构造函数同时继承多个对象, 后者覆盖前者
继承对象 与 构造函数 拥有同名称成员,本身构造函数成员起作用
构造函数同时 继承对象 和 单一成员,需要『先继承对象再继承单一成员』
对象访问成员类型 和 优先级
遍历对象: for-in
for(var 成员变量 in object) {}
判断成员是自己的还是继承来的: 对象.hasOwnProperty(成员名称) 判断成员是否是本身。返回boolean