文章出處

比如有下面這么一段代碼

var log = console.log;
console.log = function(){
    log("準備開始執行log方法");
    log.apply(this,arguments);
    log("log方法執行結束");
};
console.log("js"); // 準備開始執行log方法 js log方法執行結束

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

function fn1(){
  console.log("fn1");
}
function fn2(){
  console.log("fn2");
}
function main(){
  fn1();
  fn2();
}
main(); // fn1 fn2

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

function main(){
  console.log("fn1");
  console.log("fn2");
}
main(); // fn1 fn2

最終它成了這樣:

console.log("fn1");
console.log("fn2");

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

那函數的意義是什么?

組合代碼,重用代碼,隔離作用域

  • 組合代碼的意義在于,當執行某個方法時,可以去執行多條語句。
  • 很大原因能重用代碼是因為有了組合代碼。
  • 因為代碼不是全部寫在一個空間里,因此才有了作用域的可能,但不一定得是函數。

由此可以看出,不管代碼文件有多大,有多少個代碼塊,程序無非就是多執行一些語句罷了。

寫的有些凌亂,勿見笑


文章列表


不含病毒。www.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()