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

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

javascript - js 匿名函數的相關問題

瀏覽:290日期:2023-03-17 13:49:06

問題描述

(function(){ var obj, sayHi; obj = {};sayHi = function(str){console.log(str); }obj.sayHello = function(str1){sayHi(str1); }obj.sayYo = function(str2){console.log(str2); }window.obj = obj; })()obj.sayHello('hello world!'); // hello world! obj.sayYo('yo, what’s up?'); // yo, what’s up?

我自己碰到的一個小問題,不知道你們有沒有,最近比較喜歡寫匿名函數,剛看到這個的時候,習慣性倒過來看,心想僅僅是把obj暴露出來了,為什么在執行sayHello的時候可以執行sayHi?想到之前看過js的運行機制。不知道是不是這樣子:js在運行的時候應該是先預解析所以在執行sayHello之前,匿名函數里面的sayHello應該已經變成了

obj.sayHello = function(str1){function(str1){ console.log(str1); };};

本人非專業的,不知道這樣理解對不對?

問題解答

回答1:

這個是作用域的問題。只要記住函數在創建的時候就已經保存了作用域,不管你后面在哪里調用,結果都是一樣,就像你這個代碼,改成這樣,結果還是一樣(為了下面好分析,給這個立即調用函數加個名字,叫test):

(function test(){ var obj, sayHi; obj = {};sayHi = function(str){console.log(str); }obj.sayHello = function(str1){sayHi(str1); }obj.sayYo = function(str2){console.log(str2); }window.obj = obj; })() var sayHi = function(str) { // 就算在全局作用域里面加個sayHi函數,也不會對sayHello有任何影響console.log('Hi'); } obj.sayHello('hello world!'); // hello world! obj.sayYo('yo, what’s up?'); // yo, what’s up?

分析一下,當obj.sayHello這個函數創建的時候,他會保存著當前所有的作用域:

sayHello.[[scope]] = [ sayHelloContext.AO, testContext.VO, globalContext.VO]

這個時候很明顯sayHi函數在test的作用域里面,所以sayHello里面直接保存著這個引用,就算在全局作用域里面運行了,全局作用域里面重新定義的sayHi依然無法影響它,因為他是從test函數里面查找的,看看下面這個例子你就懂了:

var x = 10; function foo() { alert(x);} (function () { var x = 20; foo(); // 10})();

foo函數的作用域就是foo本身+全局作用域,所以就算在立即執行函數里面執行,輸出值也不會是20,只會是10

回答2:

這么理解不好吧,這應該是閉包概念。http://www.ruanyifeng.com/blo...

在一個function里面訪問一個變量,首先先看這個function有沒有聲明這個變量,沒有,就到外層作用域去找,這里就是這種情形,在(function(){})()這個function里找到了sayHi,所以就直接調用了,如果這個時候是沒有聲明sayHi的話,那就繼續往function外層去找,直接找到全局還是木有。那就沒有然后了

標簽: JavaScript
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
久久午夜视频| 亚洲一区免费| 国产精品久久久久毛片大屁完整版| 日韩精品中文字幕吗一区二区| 日韩国产一二三区| 麻豆久久久久久久| 中文字幕色婷婷在线视频| 亚洲大片在线| 日韩精品一级二级| 国产日产一区| 日韩在线高清| 蜜桃一区二区三区在线| 国产精品一区二区免费福利视频| 97精品在线| 99精品在线免费在线观看| 美女精品在线| 国产精品chinese| 欧美精选视频一区二区| 免费久久99精品国产| 国产精品久av福利在线观看| 中文字幕高清在线播放| 国产精品嫩草99av在线| 欧美日韩一视频区二区| 欧美日韩免费观看视频| 综合一区二区三区| 国产精品原创| 少妇精品在线| 欧美sss在线视频| 日韩一区二区三区在线看| 精品中文在线| 久热精品在线| 国产精品黑丝在线播放| 丝袜美腿亚洲色图| 国产精品99一区二区三区| 亚洲一级在线| 97精品一区| 青草久久视频| 婷婷六月综合| 久久久久久婷| 日韩国产欧美三级| 欧美二区视频| 欧美激情福利| 亚洲一区二区三区中文字幕在线观看| 精品美女视频 | 亚洲免费中文| 精品成人18| 一区二区三区国产盗摄| 国产盗摄——sm在线视频| 亚洲一区有码| 亚洲福利精品| 精品三区视频| 日本三级亚洲精品| 亚洲欧洲日本mm| 亚洲成a人片| 国产高清精品二区| 午夜亚洲福利| 一区福利视频| 91欧美日韩| 国产精品亚洲欧美| 午夜精品影视国产一区在线麻豆| 国产综合欧美| 91视频精品| 国产精品三级| 日本久久二区| 蜜芽一区二区三区| 日韩亚洲国产欧美| 久久九九电影| 国产精品二区不卡| 久久av中文| 国产精品入口久久| 日本强好片久久久久久aaa| 日韩在线播放一区二区| 激情五月综合| 久久视频精品| 久久精品亚洲欧美日韩精品中文字幕| 国产aa精品| 日韩成人免费| 色综合狠狠操| 国产+成+人+亚洲欧洲在线| 国产精品一级在线观看| 久久国产视频网| 国产亚洲人成a在线v网站| 日韩精品免费观看视频| 亚洲男人在线| 日本亚洲视频在线| 中文字幕亚洲精品乱码| 一区二区不卡| 日韩高清成人在线| 日本不卡高清视频| 69堂精品视频在线播放| 欧美另类中文字幕 | 国际精品欧美精品| 国产欧美大片| 国产精品久久久久久久久久久久久久久| 日韩区欧美区| 欧美精品中文字幕亚洲专区| 久久狠狠久久| 麻豆极品一区二区三区| 久久av超碰| 精品日韩在线| 久久久蜜桃一区二区人| 亚洲一本视频| 天堂成人免费av电影一区 | 91精品观看| 亚洲精品免费观看| 欧美一级网站| 国产suv精品一区二区四区视频| 国产自产自拍视频在线观看| 99视频精品全国免费| 在线国产一区二区| 亚洲精品乱码日韩| 日本欧美一区| 国产精品九九| 日韩在线综合| 男人的天堂亚洲一区| 日本中文字幕一区二区视频| 国产日韩中文在线中文字幕| 久久精品亚洲一区二区| 亚洲www免费| 国产农村妇女精品一二区| 18国产精品| 91亚洲成人| 尹人成人综合网| 国产日韩高清一区二区三区在线| 在线看片福利| 日韩欧美中文| 成人在线丰满少妇av| 久久天堂成人| 中文字幕亚洲在线观看| 捆绑调教美女网站视频一区| 久久中文字幕二区| 首页国产精品| 欧美精品日日操| 日韩一区欧美| 亚洲激情av| 国产剧情在线观看一区| 日韩欧美三级| 美国欧美日韩国产在线播放| 久久国产精品免费一区二区三区| 粉嫩av一区二区三区四区五区| 亚洲午夜91| 婷婷精品在线| 高清不卡亚洲| 奶水喷射视频一区| 狠狠久久伊人| 亚洲精品无吗| 97国产成人高清在线观看| 99亚洲视频| 国产在线观看91一区二区三区| 婷婷综合在线| 国产精品久久久久9999高清| 蜜桃视频欧美| 美日韩一区二区三区| 丝袜诱惑制服诱惑色一区在线观看| 精品少妇一区| 日韩av一级片| 午夜av成人| 国产丝袜一区| 在线国产一区| 国产精品99视频| 亚洲精品一二| 欧美影院三区| 动漫av一区| 欧美一区成人| 亚洲欧美日韩视频二区| 日韩深夜视频| 欧美激情精品| 天堂va欧美ⅴa亚洲va一国产| 99成人超碰| 国产91在线播放精品| 日本综合精品一区| 欧美成人日韩| 色婷婷色综合| 美女毛片一区二区三区四区最新中文字幕亚洲| 久久精品99久久无色码中文字幕| 国产精品videosex极品| 亚洲精品国模| 丝袜美腿亚洲一区| 亚洲电影在线一区二区三区| 色爱综合网欧美| 欧美激情麻豆| 日本欧美一区二区| 视频在线观看一区| 一区免费在线| 蜜桃tv一区二区三区| 婷婷激情一区| 麻豆精品视频在线观看免费| 午夜电影一区| 亚洲精品高潮| 亚洲三级精品| 免费在线看一区| 欧美另类专区| 久久中文字幕二区| 日韩欧美看国产| 精品一区二区三区在线观看视频 | 亚洲精品系列| 亚洲视频二区| 石原莉奈在线亚洲二区| 国产手机视频一区二区| 激情欧美丁香|