一.获得循环序号 for(var i = 0; i < 10; i++) { (function(e) { setTimeout(function() { console.log(e); }, 1000); })(i); } 二.从匿名包装器中返回一个函数 for(var i = 0; i < 10; i++) { setTimeout((function(e) { return function() { console.log(e); } })(i), 1000) }…
判断类型: var u = navigator.userAgent; var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; //android var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios 执行回调函数: if (isAndroid) { blin.CallAndroid(xxxx, yyyyy); } if (isiOS) {  va…
#include <iostream> #include <list> using namespace std; //函数包装器,左边参数右边函数 template<class T, class F> T run(T t, F f) { return f(t); } //先获取类型再执行操作 template<class T> T runit(T t) { //获取伪函数类型 Tfun<decltype(t)> f; return f(t); }…
JS函数有两种命名方式 1.声明式 声明式会导致函数提升,function会被解释器优先编译.即我们用声明式写函数,可以在任何区域声明,不会影响我们调用. function XXX(){} 2.函数表达式 函数表达式我们经常使用,而函数表达式中的function则不会出现函数提升.而是JS解释器逐行解释,到了这一句才会解释. 因此如果调用在函数表达式之前,则会调用失败. var k = function(){} fn1(); function fn1(){}//可以正常调用 fn2(); var…
先看一段jQuery源码中匿名函数自执行的例子: (function( window, undefined ) { // jquery code })(window); 另外一种常见的写法: +function( $ ) { // jquery code })(window.jQuery); 这两种写法该如何理解呢?第二种写法前面为何要加“+”号,不加会是什么结果呢? function( $ ) { // jquery code })(window.jQuery); // 报错: Uncaugh…
摘要 有时使用js写了一个匿名方法,需要立即执行.因为没有方法名称,无法在其它地方调用. 匿名函数 匿名函数,可以认为是没有方法名称的函数. js中如果想执行匿名函数,结构如下: (function () { //逻辑代码 })() 使用()将匿名函数括起来,后面再加一对小括号(包含参数列表). 例如: alert((function (x, y) { return x + y; })(2, 3)); 命名函数自调用 (function myfunc() { alert("23333"…
自执行匿名函数: 常见格式:(function() { /* code */ })(); 解释:包围函数(function(){})的第一对括号向脚本返回未命名的函数,随后一对空括号立即执行返回的未命名函数,括号内为匿名函数的参数. 作用:可以用它创建命名空间,只要把自己所有的代码都写在这个特殊的函数包装内,那么外部就不能访问,除非你允许(变量前加上window,这样该函数或变量就成为全局).各JavaScript库的代码也基本是这种组织形式. 总结一下,执行函数的作用主要为 匿名 和 自动执行…
大方向上: JS 是按照 代码块 进行 编译.执行 的. 学习至: 1.变量声明提升 2.新唐的博客 3.js中匿名函数的创建与调用方法分析 4.前端圣经 - <高程三> 5.深入理解变量声明提升和函数声明提升 因为没有好好地分类.可能会比较杂.为了系统地学习,先了解几个概念. 一. <script> 区分的代码块. JS是按照代码块 编译 和 执行的.代码块间 相互独立,但是 变量和方法 共享. <script> alert('代码块一'); </script&…
1)自执行匿名函数: 常见格式:(function() { /* code */ })(); 2)作用:       function中的code代码在解释时就已经在运行了.因此可以用它创建命名空间,只要把自己所有的代码都写在这个特殊的函数包装内,那么外部就不能访问,除非你允许(变量前加上window,这样该函数或变量就成为全局).各JavaScript库的代码也基本是这种组织形式. 3)例子: 在html中输入以下代码,页面加载时,就会弹出1:    (function() {alert(1)…
js闭包中的this(匿名函数中的this指向的是windows) 一.总结 1.普通函数中的this指向的是对象,匿名函数中的this指向的是windows,和全局变量一样 2.让匿名函数中的this指向对象的两种方法 可以使用对象冒充强制改变this的指向 将this赋值给一个变量,闭包访问这个变量 二.js闭包中的this 闭包中的this问题 之前的课程中讲过this是在运行时基于函数的执行环境来绑定的 全局函数中的this是window,而当函数作为某个对象的方法调用时,this就是指…