日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

javascript - 關于具名的IIFE內部對函數自身再賦值問題?

瀏覽:184日期:2023-09-09 09:30:01

問題描述

+function foo(){foo=10;//我的問題代碼 console.log(foo);//方法自己}();console.log(typeof foo);//undefined 觀察是否全局污染

我想問 函數foo內部對foo再賦值的這個10去哪了,還有同名函數foo是如何阻止全局污染的,求解求擴展

問題解答

回答1:

題主能問這個,可以的.不過這題能通過自己實踐解決掉...

首先題主對于IIFE的寫法沒問題,IIFE的寫法好多,常見的就是@ewind說的這個和:

(function(){}())

還有不常見的:

!function(){ /* code */ }();~function(){ /* code */ }();-function(){ /* code */ }();+function(){ /* code */ }();

然后再說代碼:在函數里給當前函數名賦值時:foo = 10; 無效.(贊同@ewind,這里會忽略,應該有更合理的說法.)JS解析器會忽略掉它.我在Chrome控制臺執行的結果是:

function foo(){ foo=10;//我的問題代碼 console.log(foo);//方法自己}undefined// 上面typeof foo的結果

這就證明了上面我說的忽略.然后因為IIFE模擬了塊作用域,外部環境訪問不了內部的變量.所以就是undefined.

@ewind說因為foo是匿名函數然后怎樣怎樣.明顯概念搞混了.foo函數并不是匿名函數.

function [name]([param] [, param] [..., param]) { statements }name函數名,可以省略。當省略函數名的時候,該函數就成為了匿名函數。

MDN

回答2:

首先,貼出的代碼是不完整的。完整版應該是這樣

(function foo(){ foo = 10 console.log(foo) // [Function: foo]})();console.log(typeof foo) // undefined

這確實看起來比較反直覺,因為沒有采用 var 聲明的 foo 并沒有污染全局作用域。

但如果函數內聲明的變量名不是 foo,就很符合直覺了,如下:

var bar = 1;(function foo(){ bar = 10})();console.log(typeof foo) // undefinedconsole.log(bar) // 10

所以為什么函數內聲明的變量和函數名同名時,會發生問題呢?可以看這個示例:

(function foo(){ console.log(foo) // [Function: foo] console.log(arguments.callee) // [Function: foo] console.log(foo === arguments.callee) // true})();

在立即執行的函數帶有 foo 這一函數名后,調用時的 arguments.callee 其實就是對 foo 的引用了。比較二者可以發現此時 foo 就是函數對象。此時賦值操作并不能生效,遇到未加 var 聲明的 foo 變量時,解釋器查找到的也是這個函數對象,從而不會在全局作用域下產生污染。

標簽: JavaScript
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产福利亚洲| 欧美午夜精彩| 久久男女视频| 日韩国产在线观看| 九九久久电影| 成人在线黄色| 国产精品精品| 国产精品中文字幕制服诱惑| 先锋影音国产一区| 亚洲一区二区三区无吗| 日韩在线成人| 偷拍欧美精品| 亚洲一区日韩在线| 亚洲精品日本| 日韩二区在线观看| 亚洲深深色噜噜狠狠爱网站| 老司机免费视频一区二区三区| 欧美亚洲日本精品| 精品视频一区二区三区四区五区 | 亚洲欧美日韩国产| 日本精品在线中文字幕| 久久精品系列| 日韩亚洲一区在线| 日韩免费福利视频| 久久xxxx精品视频| 91精品xxx在线观看| 美女久久网站| 亚洲三级国产| 美女性感视频久久| а√天堂中文在线资源8| 99久久亚洲精品| 日韩欧美一区二区三区免费看| 精品国产18久久久久久二百| 国产精品亚洲四区在线观看| 日本大胆欧美人术艺术动态| 福利一区二区三区视频在线观看| 亚洲一区二区三区免费在线观看| 久久99精品久久久久久园产越南| 国内精品亚洲| 91精品精品| 欧美日韩亚洲一区在线观看| 尤物在线精品| 日韩欧美一区免费| 日韩精品三级| 国产一区二区亚洲| 亚洲精品福利| 亚洲夜间福利| 天堂成人国产精品一区| 免费一级片91| 欧美成人一二区| 麻豆精品在线视频| 日韩一区自拍| 欧美va天堂在线| 日韩精品一二三区| 久久午夜精品一区二区| 亚洲精品乱码日韩| 精品一区91| 日韩中文字幕高清在线观看| 日本久久综合| 久久激情五月婷婷| 国产精品毛片| 免费看久久久| 日韩视频中文| 久久久久久久久久久妇女| 日韩激情综合| 午夜精品婷婷| 精品国产欧美日韩| 免费久久99精品国产| 国产一卡不卡| 亚洲a一区二区三区| 久久av一区二区三区| 欧美日韩99| 国产亚洲一级| 另类综合日韩欧美亚洲| 石原莉奈在线亚洲二区| 老司机精品在线| 蜜臀91精品一区二区三区| 国产精品v日韩精品v欧美精品网站| 免费视频久久| 日韩精品一区二区三区中文在线| 国产在线欧美| 日本免费一区二区三区四区| 青青在线精品| 视频一区欧美日韩| 国产乱码精品一区二区三区亚洲人| 亚洲高清av| 国产精品久久久久9999高清| 日韩一区电影| 好看的av在线不卡观看| 新版的欧美在线视频| 国产精品88久久久久久| 久久精品国产免费| 一区在线免费观看| 久久激情网站| 欧洲在线一区| 久久三级福利| 久久中文精品| 国产精品一区三区在线观看| 欧美激情久久久久久久久久久| 亚洲精品日本| 伊人影院久久| 久久中文字幕av| 成人久久久久| 亚洲欧美日本视频在线观看| 中国字幕a在线看韩国电影| 999国产精品999久久久久久| 成人小电影网站| 久草精品视频| 九一成人免费视频| 日本亚洲最大的色成网站www| 亚洲一区二区免费看| 国产精品久久久久77777丨 | 久久婷婷国产| 国产精品一区二区三区av| 欧美香蕉视频| 视频一区二区三区中文字幕| 国产精品亚洲欧美日韩一区在线 | 精品一区视频| 蜜臀精品久久久久久蜜臀| 国产一区二区三区不卡视频网站 | 国产精品腿扒开做爽爽爽挤奶网站| 日韩在线一区二区| 91欧美在线| 欧美日韩国产免费观看| 久久精品国产亚洲aⅴ| 日本91福利区| 婷婷亚洲成人| 国精品一区二区| 国产在线看片免费视频在线观看| 日韩一区二区三区精品视频第3页| 99久久婷婷| 国产综合精品| 日韩欧美1区| 亚洲深夜视频| 久草精品视频| 福利视频一区| 快播电影网址老女人久久| 欧美激情在线精品一区二区三区| 欧美xxxx中国| 欧美日韩 国产精品| 日韩影院免费视频| 国产一区导航| 国产视频一区三区| 中文字幕亚洲在线观看| 天堂av在线一区| 亚洲中午字幕| 奶水喷射视频一区| 视频一区二区三区在线| 国精品一区二区| 99精品在线观看| 国产精品激情电影| 欧美一级一区| 精品视频高潮| 一本大道色婷婷在线| 一区在线免费观看| 久久免费视频66| 狠狠干综合网| 99久久九九| 精品少妇一区| 蜜臀久久久久久久| 久久国产欧美日韩精品| 日韩在线观看一区| 亚洲精品网址| 亚洲三级av| 国产精品欧美一区二区三区不卡| 成人午夜网址| 日韩欧美2区| 亚洲大全视频| 国产欧美日韩一区二区三区四区 | 亚洲成av人片一区二区密柚| 蜜桃tv一区二区三区| 欧美在线看片| 久久激情一区| 国产精品三p一区二区| 日韩视频网站在线观看| 午夜久久免费观看| 免费av一区| 精品视频99| 日本99精品| 亚洲久久在线| 三级欧美在线一区| 一区福利视频| 久久精品免费看| 日韩一区二区三免费高清在线观看 | 色88888久久久久久影院| 国产一区二区三区精品在线观看| 亚洲精品乱码日韩| 亚洲在线观看| 欧美福利一区| 日韩美女一区二区三区在线观看| 亚洲深夜福利在线观看| 精品国产一区二区三区av片| 日本91福利区| 久久久精品久久久久久96| 国产欧美91| 高清精品久久| 热三久草你在线| 日韩一区二区三区精品| 精品国产一级| 欧美成人午夜|