侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 130562 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

javascript 中(function{})()

2023-12-17 星期日 / 0 评论 / 0 点赞 / 26 阅读 / 2874 字

最近在整理javascript学习,发现这个问题了,在网上发现这么个解释最清楚最明白;(function(){})()相当于先定义functionxx(){},后调用xx();()是最高优先级的,所以

最近在整理javascript 学习,发现这个问题了 ,在网上发现这么个解释 最清楚 最明白 ; (function(){})() 相当于先定义 function xx(){},后调用 xx(); ()是最高优先级的,所以先执行function(){}, 这个定义了一个匿名函数,等于xx=function(){} 接着就是调用xx()了; 给个例子 JScript code functionf1(a)    {    alert(a);              }  functionf2(a) {      returnfunction(){ alert(a); }            } 这里的var x=f2 就等于把函数传递给了f2,然后要执行这个函数,就必须加() 也就是x(); 也就是f2()   还是(function f2(a){   return function(){   alert(a);    })(); 另外还有一个问题 就是命名空间的问题 YY = YY||{};---声明一个叫YY的命名空间(定义一个全局的变量) (function() { YY.Lang=function() {------声明一个叫YY.Lang的命名空间(通过全局变量的增加属性的方式把闭包里的对象传到全局变量中,实现代码封装的效果) isUndefined: function(o) {   return typeof o === 'undefined';   }, isString: function(o) {   return typeof o === 'string';   } };  })();  ---调用方法 alert(YY.Lang.isString('test me'));  这时候就有人不明了,楼上为什么要加(function() { 和)(); 最外面的这两行,有什么用啊?JScript code YY=YY||{}; //---声明一个叫YY的命名空间(定义一个全局的变量) //( function() { YY.Lang=function() { //------声明一个叫YY.Lang的命名空间(通过全局变量的增加属性的方式把闭包里的对象传到全局变量中,实现代码封装的效果) isUndefined:function(o) {returntypeofo==='undefined'; },  isString:function(o) {returntypeofo==='string'; } }; }  //)(); //---调用方法  alert(YY.Lang.isString('test me'));    疑问在这:??????    注释掉这两行有什么不一样的呢?不就是申明吗,为什么要用()()执行一下啊? functionaa(){..};//只是定义了一个叫aa的函数,但是并没有执行


广告 广告

评论区