JavaScript的一些知识碎片(2)-反射-全局变量-回调
2014-12-10 23:09
375 查看
JavaScript中的反射:编程语言中的反射原理都一样,就是通过操作metadata(描述语言的语言)来完成一些不具备反射功能的语言很难实现的功能。在静态语言中,反射是一个高大上的东西,比如在运行时动态创建方法并调用,延迟绑定等等等等,当八九年前第一次用到C#的反射时,那个激动劲就别提了。但是在动态语言世界里,很多功能不必要通过反射实现了,所以javascript的反射会变得比较简单,因此javascript中反射的主要用法就那么几个如typeof ,instanceof,hasOwnProperty
全局变量:
在javascript中,你可以在任何地方随便定义一个全局变量。小应用好像很方便,代码成规模,切分文件后,就完蛋了。编译器不管,我们可以管。
两种方式:
1.全部写在一起,如程序最顶端,好管理。
2.写一个全局变量的容器,在使用时把所有的全局变量都扔进去。这样的好处也是统一管理方便检索。
回调 在JavaScript中的实现形式是这样的:将一个函数当做参数传入另一个函数,这个函数会在适当的时候调用被传入的参数。我们用一段代码的例子来解释:
执行这段代码的结果就是在等待一秒钟后回调函数afunction被宿主函数调用,同时宿主函数传递了一个参数给afunction,这一点非常重要。因为在现实中,传递的参数都是回调函数要正确执行所依赖的内容。
var alteral={ name:"a lteral" }; console.log(typeof alteral );//object console.log(alteral.hasOwnProperty("name"));//true console.log(alteral.hasOwnProperty("gender"))//false; var fun = function(){ var subfun=function(){ return null }; }; typeof(fun); console.log( fun instanceof Function); //true
全局变量:
在javascript中,你可以在任何地方随便定义一个全局变量。小应用好像很方便,代码成规模,切分文件后,就完蛋了。编译器不管,我们可以管。
两种方式:
1.全部写在一起,如程序最顶端,好管理。
2.写一个全局变量的容器,在使用时把所有的全局变量都扔进去。这样的好处也是统一管理方便检索。
var variableBag={ }
回调 在JavaScript中的实现形式是这样的:将一个函数当做参数传入另一个函数,这个函数会在适当的时候调用被传入的参数。我们用一段代码的例子来解释:
function mainfunction(callback){//定义一个宿主函数,它接收一个callback函数作为参数。 //做一些事情,比如等待1秒钟后,把当前时间传给callback var startTime = new Date().getTime(); while (new Date().getTime() < startTime + 1000); var now = new Date().getTime(); callback(now);//调用传入的参数 }; function afunction(time){//定义callback函数 console.log("afunction is called"); console.log(time); }; mainfunction(afunction);//调用宿主函数
执行这段代码的结果就是在等待一秒钟后回调函数afunction被宿主函数调用,同时宿主函数传递了一个参数给afunction,这一点非常重要。因为在现实中,传递的参数都是回调函数要正确执行所依赖的内容。
相关文章推荐
- JavaScript的一些知识碎片(1)
- javascript里有关全局变量和局部变量的一些细节
- 关于 回调 、 反射 和异步的一些理解---初级知识
- javascript 的作用域及全局变量(zhuan)
- .net知识和学习方法系列(二十四)struct 中的全局变量
- javascript学习中的一些心得(基础知识,高手免进)
- JavaScript局部变量与全局变量1
- javascript中的全局变量应用
- JavaScript中全局变量、函数内变量以及常量表达式的效率测试
- javascript全局变量失效
- javascript 用局部变量来代替全局变量第1/2页
- javascript框架之全局变量
- 环境变量的一些知识
- JavaScript 变量基础知识
- 详解Javascript框架中的全局变量
- javascript 用局部变量来代替全局变量第1/2页
- Firefox - 附加软件 - Firebug - DOM视图 - 借助Show User-defined Properties选项查看javascript全局变量
- javascript创建页面蒙板的一些知识技巧总结第1/3页
- javascript 关于变量的基本知识
- JavaScript 全局变量与作用域