js 立即调用函数
function makeCounter() { //不能立即执行
// 只能在makeCounter内部访问i
var i = 0;
return function () {
console.log(++i);
};
}
var counter = makeCounter(); //对象1
counter(); // logs: 1 //立刻执行
counter(); // logs: 2
var counter2 = makeCounter(); //对象2
counter2(); // logs: 1
counter2(); // logs: 2
var foo = function () { console.log("/* code */") }; //直接运行不了
var foo = function () { console.log("/* code */") }();//直接运行
function ff(){ /* code */ }(); // SyntaxError: Unexpected token 出错
function ff() { console.log("/* code */") } (1); // 式子无异常,无输出
function foo() { console.log("/* code */")};
(1); //无报错 无输出
(function () { console.log("/* code */") }()); // 推荐使用这个 直接输出
(function () { console.log("/* code */") })(); // 但是这个也是可以用的 直接输出
var i = function () { console.log("/* code */") }(); //直接输出
true && function () { console.log("/* code */") }(); //直接输出
0, function () { console.log("/* code */") }(); //直接输出
!function () { console.log("/* code */") }();//直接输出
~function () { console.log("/* code */") }();//直接输出
-function () { console.log("/* code */") }();//直接输出
+function () { console.log("/* code */") }();//直接输出
new function () { console.log("/* code */") };//直接输出
new function () { console.log("/* code */") }();//直接输出
function ff() {
new function () { console.log("/* code */") };
!function () { console.log("/* code */") }();
}
ff(); 直接输出
!function () { console.log("/* code */1") }(console.log("/* code */2"));//直接输出 先执行2 在执行1
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="jquery-1.10.2.js"></script>
<script>
function test() {
(function($) { console.log("")})(jQuery);//输出 22222
(function($) { console.log($)})(jQuery); //输出
// jQuery = function( selector, context ) {
//// The jQuery object is actually just the init constructor 'enhanced'
// return new jQuery.fn.init( selector, context, rootjQuery );
//},
var T=;
(function(T) { console.log("")})(T); //输出111
(function($) { console.log("")})($); //输出111
}
</script>
</head>
<body>
<input type="button" value="测试执行效果" onclick="test()">
</body>
</html>
var xhr1 = function () {
if (typeof XMLHttpRequest != 'undefined') {
return new XMLHttpRequest();
}
}();
var xhr2 = (function () {
if (typeof XMLHttpRequest != 'undefined') {
return new XMLHttpRequest();
}
})();
js 立即调用函数的更多相关文章
- js的调用函数前先执行某语句问题
js的调用函数前先执行某语句问题 标签: web前端面试 2015-09-29 17:48 1455人阅读 评论(0) 收藏 举报 分类: js(5) 版权声明:本文为博主原创文章,未经博主允许不 ...
- js 立即调用函数 IIFE(Immediately Invoked Function Expression) 【转】
原文链接:https://www.cnblogs.com/ming-os9/p/8891300.html JS中 (function(){...})()立即执行函数 1 (function(){. ...
- js里调用函数时,函数名带括号与不带括号的区别
function test(){ return 1;}var a=test;console.log(a);//输出[Function: test]var b=test();console.log(b) ...
- jquery跨js文件调用函数示例
var common_func; (function() { common_func = { load_hot_data: function(AreaCode) { var hot_html = &q ...
- arguments.callee 调用函数自身用法----JSON.parse()和JSON.stringify()前端js数据转换json格式
arguments.callee 调用函数自身用法 arguments.callee 在哪一个函数中运行,它就代表哪个函数. 一般用在匿名函数中. 在匿名函数中有时会需要自己调用自己,但是由于是匿名函 ...
- Js 使用new关键字调用函数和直接调用函数的区别
最近开始学习js,在看到书上的一个例子时,引发了我的一系列思考: 书上例子: function Person(name,age,job){ var o =new Object(); o.name=na ...
- 模板语言变量,js变量,js自执行函数之前嵌套调用
1.模板语言变量 前端html页面中展示 {{ nodeIp }} 2.js变量引用模板语言变量 把模板语言变量传递给js,js去执行页面操作(变量的转换,只适用于字符串) var IP = &quo ...
- js new一个函数和直接调用函数的区别
用new和调用一个函数的区别:如果函数返回值是一个值类型(Number.String.Boolen)时,new函数将会返回这个函数的实例对象,而如果这个函数的返回值是一个引用类型(Object.Arr ...
- js中直接调用函数和new函数的区别
如果函数返回值为常规意义上的值类型(Number.String.Boolean)时,new函数将会返回一个该函数的实例对象,而如果函数返回一个引用类型(Object.Array.Function),则 ...
随机推荐
- mybatis注解开发-动态SQL
实体类以及表结构 在mybatis-config.xml中注册mapper接口 -------------------------- 动态查询@SelectProvider EmployeeMappe ...
- 牛刀小试MySQL学习—MySQL 双主
双主其实说白了也是一个replication,只是推出一些新的拓扑结构 主-主的复制有两种模式: 主动-主动模式下的主-主复制(Master-Master in Active-Active Mod ...
- CodeForces - 205B - Little Elephant and Sorting
先上题目: Little Elephant and Sorting time limit per test 1 second memory limit per test 256 megabytes i ...
- 利用DTrace实时检测MySQl
与我们大多数人想象的不同,DTrace用于MySQL时不需对MySQL做任何更改.DTrace最强大的“提供器”(provider,是一组可观测的探测器)是FBT(Functional Boundar ...
- v$open_cursor中的相同record
之前在查看v$open_cursor的时候,发现很多相同的record. 让我很疑惑, sid saddr sql_id 都相同,我就想 这不是一个cursor吗? 那为什么在open_cursor中 ...
- [Tool] Open Multiple Terminal Tabs on npm Start with ttab and npm-run-all
Often times when developing web applications, you need to open multiple tabs to run different script ...
- 3D数学读书笔记——多坐标系和向量基础
本系列文章由birdlove1987编写,转载请注明出处. 文章链接: http://blog.csdn.net/zhurui_idea/article/details/24662453 第一个知识点 ...
- 使用jQuery.makeArray() 将多种类型转换成JS原生Array
jQuery.makeArray(obj)这个函数从名字上来看非常easy猜出它的用途:应该是用来将传入的对象转换成一个原生array 再看看官网上对它的解释:Convert an array-lik ...
- hdu 5094 Maze bfs
传送门:上海邀请赛E 给定一个n×m的迷宫,给出相邻格子之间的墙或者门的信息,墙说明不可走,假设是门则须要有相应的钥匙才干通过,问是否可以从(1,1)到达(n,m) 一个带状态的bfs,再另记一个状态 ...
- EF + WCF学习笔记——EF实体类序列化
项目中如果 EF + WCF 结合使用,模式应该是EF负责读取数据库,传递数据对象给WCF,WCF再将这些对象传送给客户端.因为WCF传送的对象需要序列化,而EF默认生成的对象并没有序列化,很可能会出 ...