由重寫方法,產生的思考

2021-10-08 21:13:10 字數 695 閱讀 8035

比如有下面這麼一段**

var log = console.log;

console.log = function();

console.log("js"); // 準備開始執行log方法 js log方法執行結束

這段**所做的事就是將console.log重寫,但從執行的角度上看,這裡無非就是在原有的console.log基礎上新增了幾條語句,再來看下面這段**:

function fn1()

function fn2()

function main()

main(); // fn1 fn2

從執行角度上看,它就像下面這樣:

function main()

main(); // fn1 fn2

最終它成了這樣:

console.log("fn1");

console.log("fn2");

舉這些例子我想說的是,不管你寫的**有多複雜,程式始終還是一步一步的執行,除非是多執行緒,最大的區別就是它們有了作用域。

那函式的意義是什麼?

組合**,重用**,隔離作用域

由此可以看出,不管**檔案有多大,有多少個**塊,程式無非就是多執行一些語句罷了。

寫的有些凌亂,勿見笑

由 引發的思考

前陣子在乙個移動專案中,通過 的方式 繫結click 事件來提交乙個表單,由於表單資訊比較敏感,於是採用的post 同步提交的方式,原本到也沒有什麼。後來萬惡的pm說 你這個按鈕呀,要固定在底部比較好 於是乎就通過 position fixed 固定到底部了。那麼,問題來了 在ios 下,虛擬鍵盤是...

由return引出的思考

public class test public static int get finally 返回的結果是2。try中的return 語句呼叫的函式先於finally 中呼叫的函式執行,也就是說return 語句先執行,finally 語句後執行,所以,返回的結果是2 return 並不是讓函式馬...

由XML Literal引發的思考

首先,什麼是xml literal呢?原來,這是在vb.net 9.0才引入的乙個用於構建xml物件的新特性,並且只有vb.net 9.0才支援。我們都知道,要建立xml樹,可以使用linq中的api,如下所示 出自vb.net 9.0 xml literal dim xml2 new xeleme...