javascript面向对象:
* 函数 * Arguments对象:模拟函数重载 * 变量的作用域: * 作用域: * 全局域 * 函数域 * 变量的分类: * 全局变量:全局域+函数域 * 局部变量:当前函数域 * 特殊情况: * 定义局部变量时,不使用var:局部变量被自动定义为全局变量 * 当全局变量与局部变量同名时,在函数域中只能访问到局部变量 * 闭包 * 作用域链:变量的作用域是具有传递性的 * 闭包:函数可以使用函数之外定义的变量 * (了解)循环中的闭包结构 * 对象 * 定义对象的三种方式: * new Object() * JSON:{key:value,key:value...} * 函数对象(构造器):function 对象名(){this.属性名=属性值;} * 操作对象的属性和方法: * 调用: * 对象名.属性名(方法名) * 对象名['属性名(方法名)'] * 修改: * 对象名.属性名 = 新的属性值; * 增加 * 对象名.新的属性名 = 新的属性值; * 删除 * delete 对象名.属性名(方法名) * 内建对象: * 数据封装类对象: * Array * String * "" //string * new String() //object * Number * 工具类对象: * Date * 获取当前时间 * Math * 生成随机数(0-1) * RegExp * 匹配方法:test() * 错误类对象: * Error * 异常对象 * 原型 * 定义:函数即对象,原型其实就是函数对象的一个属性。 * 注意: * 原型是随着函数对象的创建而创建的(原型不能手动创建). * 原型的调用:函数对象.prototype. * 作用: * 利用原型为函数对象增加属性和方法. * 当函数对象本身的属性或方法与原型的属性或方法同名时: * 函数对象本身的属性或方法的优先级更高. * 内建对象具有一个属性:原型 * 利用原型为内建对象增加属性或方法?可以 * 支持: * 利用这种特性,使得javascript代码更灵活. * 反对: * 为老版本扩展的内容,可能出现在下一个版本中. * 我们站在这里. * 扩展内容: * 封装工具类 -> 库 -> 框架 * 建议使用库,反对使用框架。 * 浏览器内核: * IE浏览器:IE6.0 IE11 * 其他浏览器:webkit(苹果) * 谷歌浏览器 * 火狐浏览器 * 苹果浏览器 * 众多浏览器: * 百度浏览器:号称自主内核v5 * 腾讯浏览器:号称自主内核x5 * 遨游浏览器:号称自主内核 * 不同浏览器内核集成的javascript引擎(v6)是不一样. * 继承问题: * javascript中不存在类的概念(没有class关键字). * javascript没有extends关键字(继承). * javascript中的继承是函数对象之间的继承. * 原型链; * javascript的普通对象之间存在继承吗? 实际是浅复制