js匿名函数bootstrap怎么用调用

2543人阅读
javascript(2)
匿名函数就是没有实际名字的函数。
javaScript的匿名函数形式多样,而且不搞清楚,容易看晕代码。
以下是成功调用的匿名函数:
(function () {
&&&&&&& alert(3);
(function f1() {
&&&&&&& alert(4);
&&& })(); //不是匿名函数也能这样调用!!
void function(){
alert('void water');
}();//据说效率最高,Javascript中void是一个操作符,该操作符指定要计算一个表达式但是不返回值。
!function(){
alert('!water');
}(); //运算符+匿名函数调用
(function(){
alert('water');
}());//小括号+匿名函数,有点强制执行的味道~
=============================================================================================
使用匿名函数也要注意经常犯的错误:
//错误写法1
(function f1() {
&&&&&& alert(5);
&&& })f1();& //这不是匿名函数了!
//错误写法2
(function () {
&&&&&&& alert(6);
&&& });& //语法没有错误,没有调用的匿名函数,后面也没有机会调用了,因为没有名字,找不到调用入口。
//错误写法3
function () {
&&&&&&& alert(1);
}();//没有产生函数的引用就调用
=============================================================================================
另外要注意理解小括号的作用。
小括号能把我们的表达式组合分块,并且每一块,也就是每一对小括号,都有一个返回值。这个返回值实际上也就是小括号中表达式的返回值。所以,当我们用一对小括号把匿名函数括起来的时候,实际上小括号对返回的,就是一个匿名函数的Function对象。因此,小括号对加上匿名函数就如同有名字的函数般被我们取得它的引用位置了。所以如果在这个引用变量后面再加上参数列表,就会实现普通函数的调用形式。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:240213次
积分:2918
积分:2918
排名:第9197名
原创:79篇
评论:30条
(4)(2)(3)(1)(1)(1)(2)(2)(1)(1)(2)(2)(5)(1)(2)(6)(5)(4)(2)(1)(1)(1)(1)(4)(1)(1)(1)(1)(1)(6)(2)(2)(2)(1)(2)(1)(1)(4)(3)(1)编程开发子分类JS函数的四种调用方式以及对应的this指向
(仅支持单关键字)
JS函数的四种调用方式以及对应的this指向
〖 作者:不详 〗〖 发布日期: 〗
一.函数调用,此时this是全局的也就是window
&&var c=function(){
&&&alert(this==window)
&&c()//true
二.方法调用
&var myObj={
&&value:2,
&&inc:function(num){
&&&alert(this.value+num);
&myobject.inc(1);
//结果3,因为this指向myObj
注意:内部匿名函数不属于当前对象的函数,因此this指向了全局对象window
var myObj={
name:'myObject',
increment:function(num){
this.value += typeof(num) ==='number'? num:0;
toString:function(){
return '[object:'+this.name+'{value:'+this.value+'}]';
getInfo:function(){
return (function(){
return this.toString();//内部匿名函数不属于当前对象的函数,因此this指向了全局对象window
alert(myObj.getInfo());//[object window];
解决方法:
var myObj={
name:'myObject',
increment:function(num)
this.value += typeof(num) ==='number' ? num : 0;
toString:function()
return '[object:'+this.name+'{value:'+this.value+'}]';
getInfo:function(){
var This=//先把当前的this指向存起来
return (function(){
return This.toString();
alert(myObj.getInfo());//[Object:myObject {value:0}]
三.用new关键字来新建一个函数对象的调用,this指向被绑定到构造函数的实例上
var fn = function (status){
this.status =
fn.prototype.get_status = function(){
return this.
var test = new fn('my status');
alert(test.get_status);//my status,this指向test
四.apply/call调用
function MyObject(name){
this.name=name ||'MyObject';
this.value=0;
this.increment=function(num){
this.value += typeof(num) === 'number' ? num : 0;
this.toString=function(){
return '[Object:'+this.name+' {value:'+this.value+'}]';
this.target=
function getInfo(){
return this.toString();
var myObj=new MyObject();
alert(getInfo.apply(myObj));//[Object:MyObject {value:0}],this指向myObj
alert(getInfo.apply(window));//[object Window],this指向window
通过call和apply可以重新定义函数的执行环境,即this的指向,这对于一些应用当中是十分常用的。
JavaScript探索者
Copyright@JS自调用匿名函数具体实现
字体:[ ] 类型:转载 时间:
定义一个函数用做临时的命名空间,在这个命名空间内定义的变量都不会污染到全局命名空间,需要的朋友可以参考下
js中常常定义一个函数用做临时的命名空间,在这个命名空间内定义的变量都不会污染到全局命名空间(防止局部变量与全局变量冲突)。
代码如下: function mymodule(){ //模块代码 } mymodule();
可以简写为:
代码如下: (function(){ //mymodule()函数重写为匿名的函数表达式 //模块代码 }( )&span style="color:#ff0000;"&)&/span&; //结束函数定义并立即调用它
代码如下: (function(){ }&span style="color:#ff0000;"&)&/span&();
这种定义匿名函数并立即调用(自调用匿名函数)的写法已经非常常见,开始让人有点摸不着头脑,jquery的源码就是这样写的:
代码如下: (function( window, undefined ) { //jquery的所有代码 })( window );
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具Js自执行匿名函数_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
Js自执行匿名函数
上传于||文档简介
&&J​a​v​a​s​c​r​i​p​t​自​执​行​匿​名​函​数
你可能喜欢

我要回帖

更多关于 new function怎么调用 的文章

 

随机推荐