• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
Code Live
博客园    首页    新随笔    联系   管理    订阅  订阅
Javascript深入浅出(二)
链式作用域
父对象的所有变量,对子对象都是可见的,
但子对象的所有变量,对父对象都是不可见的
 
闭包
定义在一个函数内部的函数,方便读取其他函数内部变量,且这些变量的值始终保持在内存中
优点:灵活方便,封装
缺点:内存消耗很大,IE中可能导致内存泄露
function f1(){
    var n=999;
    function f2(){
      alert(n);
    }
    return f2;
  }
  var result=f1();
  result(); // 999
 
执行上下文就是在执行代码之前,把将要用到的所有的变量都事先拿出来,有的直接赋值了,有的先用undefined占个空
全局作用域的上下文环境数据内容为:
普通变量(包括函数表达式)
undefined
函数声明
赋值
this
赋值
局部作用域的上下文环境数据内容为:
参数
赋值
arguments
赋值
自由变量的取值作用域
赋值
eval()
 
执行上下文栈
全局上下文环境 → 调用函数,产生函数上下文环境 → 函数调用完成,函数上下文环境消除 → 全局上下文环境
处于活动状态的执行上下文环境只有一个
 
一切(引用类型)都是对象,对象是属性的集合
console.log(typeof $); // function console.log($.trim(" ABC ")); // function
 
对象都是通过函数创建的
var obj = { a: 10, b: 20 };
var obj = new Object();
obj.a = 10;
obj.b = 20;
 
function Fn() {}
var fn1 = new Fn();
 
var arr = [5, 'x', true];
var arr = new Array();
arr[0] = 5;
arr[1] = 'x';
arr[2] = true;
 
语法糖意指那些没有给计算机语言添加新功能,而只是提供更实用的编码方式,有益于更好的编码风格,更易读的语法
 
作用域包括全局作用域和局部作用域,没有块级作用域
 
作用域链在当前作用域查找自由变量查找无果,继续逐层查找各作用域,直至全局作用域的路径
 
自由变量在某作用域中使用,却没有在该作用域中声明的变量
 
面向对象编程(OOP)
Prototype模式(用于构造函数)
function Animal(){
    this.species = "动物";
  }
function Cat(name,color){
this.name = name;
this.color = color;
}
Cat.prototype.type = '猫科动物';
Cat.prototype.eat = function(){alert('吃鱼');}
var cat1 = new Cat('大黄','yellow');
var cat2 = new Cat('大毛','brown');
alert(cat1.type);
cat2.eat();
Cat.prototype = new Animal();
Cat.prototype.construtor = Cat;
alert(cat1.species);
posted on 2018-01-03 12:24  二姐的菜刀  阅读(128)  评论(1)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3