这里我直接贴出代码,注释已经补全,欢迎指正:

  

  <script type="text/javascript">
/**
1,js中一切皆是对象,函数也是,
2,当定义变量不用var修饰的时候,该变量会被默认为全局变量(即window的属性)
3,js的作用链:js调用一个变量的时候,首先会在作用域链中的第一个对象中查找,如果没有,继续向外查找(最外层作用域链对象为window,所以js中不用"var"修饰的变量都作为window的属性,即为全局变量),直到找到
*/ var rain = 1;
function rainman(){
var man = 2;
function inner(){
var innerVar = 4;
alert(rain);
}
inner(); //调用inner函数
}
rainman(); //调用rainman函数 ex:以上代码涉及到的作用域链对象有inner,rainman,window var name=1;
var func=function(){
alert(name); //输出undefined -作用域:在js中是没有块级作用域的,这里的name基于作用域链,所以在func中查找到了name的定义,但是在alert(name)调用的时候"name"还没有被初始化,所以输出undefined
var name=2;
alert(name); //输出2
}
var func1=function(){ //当函数被调用的时候,js引擎会自动创建一个活动的对象,函数中定义的变量和子函数,都会成为该活动对象(函数对象)的同名属性
var funcObj=this;
funcObj.myName=function(){
console.log(funcObj);
}
}
//对于func1的调用
var initFn=function(){
var f=new func1();
f.myName();
} alert(typeof eve); //输出undefined
alert(typeof walle); //输出"function"
function eve(){} //函数表达式,由js引擎预编译
var walle=function(){} //函数定义式,运行中执行
initFn(); </script>

最新文章

  1. Appfuse:记录操作日志
  2. 每天成长一点---WEB前端学习入门笔记
  3. C# delegate
  4. 【iOS】小项目框架设计(ReactiveCocoa+MVVM+AFNetworking+FMDB)
  5. 3.kvm的基本管理
  6. PHP过滤HTML标签的三种方法
  7. mysql索引补充
  8. Android自定义控件步骤总结
  9. Java面向对象程序设计--泛型编程
  10. ExtJS笔记--applyTo和renderTo的差别
  11. codeforces 623A. Graph and String 构造
  12. Python的控制结构(转)
  13. 读书笔记 effective c++ Item4 确保对象被使用前进行初始化
  14. HDU 1573
  15. &lt;数据结构与算法分析&gt;读书笔记--利用Java5泛型实现泛型构件
  16. IIS上发布站点后URL重写失效的解决方法
  17. n层满k叉树总共有多少个节点
  18. noip2017 TG 游记
  19. P1941 飞扬的小鸟(背包)
  20. Linux上编译hadoop-2.7.1的libhdfs.so和libhdfs.a

热门文章

  1. JavaScript加强之自定义callback示例
  2. tortoiseGit的SHH秘钥设置
  3. Oracle 动态视图1 V$LOCK
  4. Beaglebone Back学习五(PWM测试)
  5. Node.js的process模块
  6. shell 后台执行命令
  7. (转)汇编bne的问题
  8. The 5th Zhejiang Provincial Collegiate Programming Contest------ProblemA:Accurately Say &quot;CocaCola&quot;!
  9. spoj 178
  10. 【leetcode】Longest Common Prefix (easy)