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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

函数的内置属性

發布時間:2025/3/14 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 函数的内置属性 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
注意 : arguments.caller , arguments.callee ?這些在嚴格模式下會報錯. 1. ?callee 的使用 經典階乘函數 : function factorial(num){ if(num <= 1) return 1 ; else return num * factorial(num-1); } 上面代碼進行遞歸的調用時候,與函數名稱耦合度太高 導致在某種情況下調用時,就會得不到意料中的結果. var anotherFactorial = factorial ; factorial = function(){ return 0 ;} anotherFactorial(10); // display 0?? 使用函數的內置屬性 arguments , 以及 callee 進行解耦合: function factorial(num){ if(num<=1) return 1 ; else return num * arguments.callee(num-1); } 這樣 當函數名(即引用) 指向其他函數后 ,不會誤執行變化后的函數 .結果就是正常結果了. 2. caller 的使用(配合callee) function outer(){ inner(); } function inner(){ // 這里使用了inner,耦合性高 console.log(inner.caller); // 這里對上面輸出進行 解耦. 輸出的都一樣:outer函數的源碼. console.log(arguments.callee.caller); } outer(); length 函數的length表示 它想要接收的參數,比如sum(a,b){} 的length為2. call() 以及 apply() function say(word1){ return `${word1}?, ${this.word} !`?; } var obj = { word1 : "hello", word : "world" }; // 以下三種方式 均可以 在this指代的對象上進行調用 sum()函數. say.call(obj, word1);// call 必須把所有參數用逗號分隔,羅列出來 say.apply(obj, arguments); // apply 接受的是數組來傳遞參數 say.apply(obj, [word1]); bind() window.color = 'red'; var o = {color:"orange"}; function getColor(){ return this.color; } var getObjColor = getColor.bind(o); getObjColor(); // display 'orange' getColor(); // display 'red' ;

轉載于:https://www.cnblogs.com/lmxxlm-123/p/11131847.html

總結

以上是生活随笔為你收集整理的函数的内置属性的全部內容,希望文章能夠幫你解決所遇到的問題。

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