日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

js闭包??

發布時間:2023/12/13 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 js闭包?? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
<script>var name = "The Window";var object = {name : "My Object",getNameFunc : function(){console.log("11111");console.log(this); //this == object //調用該匿名函數的是對象return function(){console.log("22222");console.log(this); //this == window //匿名函數下的匿名函數return this.name;};}};alert(object.getNameFunc()());//--var name = "The Window";var object = {name : "My Object",getNameFunc : function(){var that = this;return function(){console.log("33333");console.log(this); //this==windowconsole.log("44444");console.log(that); //that==objectreturn that.name;};}};alert(object.getNameFunc()());</script>

?

function makeFunc() {var name = "Mozilla";function displayName() {alert(name);}return displayName; //返回一個函數 } var myFunc = makeFunc(); //把函數返回值賦值給myFunc console.log(myFunc); //輸出函數內容 myFunc();//調用函數

?

function makeAdder(x) {return function (y) { //返回一個函數return x + y; //返回值 }; } var add4 = makeAdder(); //無傳參函數返回值console.log("//無傳參函數返回值");console.log(add4);//輸出函數體console.log(add4(2)); //NaN Number.NaN 是一個特殊值,說明某些算術運算(如求負數的平方根)的結果不是數字var add5 = makeAdder(5); //把函數返回值賦值給add5,console.log("//有參函數返回值");console.log(add5);//輸出函數體console.log(add5(2));//7

?

var Counter1 = (function () { })();console.log("輸出立即調用函數返回值Counter1");console.log(Counter1); //undefinedvar Counter2 = (function () { var privateCounter = 0; })();console.log("輸出立即調用函數返回值Counter2");console.log(Counter2); //undefinedvar Counter3 = (function () {var privateCounter = 0;function changeBy(val) {privateCounter += val;}})();console.log("輸出立即調用函數返回值Counter3");console.log(Counter3); //undefined //--var Counter4 = (function () {var privateCounter = 0;function changeBy(val) {privateCounter += val;}return {value: function () {return privateCounter;}}})();console.log("輸出立即調用函數返回值Counter4");console.log(Counter4); //{value: ?} //類型object

?

var Counter = (function () {var privateCounter = 0;function changeBy(val) {privateCounter += val;}return {increment: function () {changeBy(1);},decrement: function () {changeBy(-1);},value: function () {return privateCounter;}} })(); console.log(Counter.value()); /* logs 0 */ //返回0 Counter.increment(); //執行0+1 Counter.increment(); //執行1+1 console.log(Counter.value()); /* logs 2 */ //輸出2 Counter.decrement(); //執行2+(-1) console.log(Counter.value()); /* logs 1 */ //輸出1

?https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Closures

轉載于:https://www.cnblogs.com/enych/p/8966592.html

總結

以上是生活随笔為你收集整理的js闭包??的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。