摘要:正題中所有函數的參數都是按值傳遞的。訪問變量有按值和按引用兩種方式,而參數只能按值傳遞。基本類型參數傳遞傳給函數的是數值的一個復制,函數中對其的修改外部不可見。因為用新引用覆蓋在外部不可見,因為函數只是拿到了引用并沒有權力更改引用。
前言
var a = [1],b=[1]; a==b; //fasle var c = b; c[0]=2; b //[2] c = [3]; b //[2]
解釋:b對c說,我同意你跟我共用一個內存地址,你可以在我的內存地址內,修改局部成員,但是你要連我的家都給挪走,對不起 你自己走。。。
正題ECMAScript 中所有函數的參數都是按值傳遞的。訪問變量有按值和按引用兩種方式,而參數只能按值傳遞。
??
基本類型參數傳遞:傳給函數的是數值的一個復制,函數中對其的修改外部不可見。
var a = 1; var b = 2; function change(a, b) { var c = a; a = b; b = c; console.log(a); //2 console.log(b); //1 } change(a, b); console.log(a); //1 console.log(b); //2
引用類型參數傳遞:傳給函數的是數值的一個引用,函數中對其屬性的修改外部可見,但用新引用覆蓋其則在外部不可見
var a = [1, 2, 3]; var b = [5, 6]; function change(a,b) { a[0] = 4; //對其屬性的修改外部可見 var c = a; a = b; //用新引用覆蓋 b = c; console.log(a); //"5,6" console.log(b); //"4,2,3" } change(a,b); console.log(a); //"4,2,3" console.log(b); //"5,6"
??a,b是change函數中的變量,在調用函數時傳遞了a,b的引用賦給了這兩個變量,但是并不能改變全局中的a,b。因為用新引用覆蓋在外部不可見,因為函數只是拿到了引用 并沒有權力更改引用。
var a = [1, 2, 3]; var b = [5, 6]; function change() { var c = a; a[0] = 4; //對其屬性的修改外部可見 a = b; //用新引用覆蓋 b = c; } change(a,b); console.log(a); //"5,6" console.log(b); //"4,2,3"
??因為js沒有塊級作用域,所以它在change里找不到變量a,b就會自覺的到上層去找,所以這里的a,b是全局變量的引用。
歡迎搜索微信公眾號:一線碼農
或掃碼關注:
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/97349.html
摘要:異步編程解決方案筆記最近讀了樸靈老師的深入淺出中異步編程一章,并參考了一些有趣的文章。另外回調函數中的也失去了意義,這會使我們的程序必須依賴于副作用。 JavaScript 異步編程解決方案筆記 最近讀了樸靈老師的《深入淺出NodeJS》中《異步編程》一章,并參考了一些有趣的文章。在此做個筆記,記錄并鞏固學到的知識。 JavaScript異步編程的兩個核心難點 異步I/O、事件驅動使得...
摘要:基本的學習思路是跟著框架設計這本書,甚至可以說是這本書的讀書筆記。也參考很多網上解讀的博客和學習資料。當然,最重要的資料還是框架的源代碼。后來由于開發者反對,新興的框架都在命名空間上構建。 JavaScript框架學習筆記(一) 我為什么要學習框架 更深入的理解工具,以后用起來更順手而且也能做一定的工具取舍,學習理解新工具也就更快, 對提升js水平也很有幫助,框架有很多解決坑的經典思...
摘要:瀏覽器看效果效果顯示效果就是瞎比比我不聽瞎比比解析后的文本直接被顯示在頁面上,并沒有被瀏覽器解析,這是為了防止被攻擊而作的保護措施。 新搭建的個人博客,本文地址:React學習筆記2:React官方CommentBox實踐所有的操作是繼續上一個學習筆記,參考的是React官方的CommentBox,不過不是100%按照其實現。參考:https://facebook.github.io/...
摘要:第二個問題是在創建子類型的實例時,不能向超類型的構造函數中傳遞參數。實際上,應該說是沒有辦法在不影響所有對象實例的情況下,給炒類型的構造函數傳遞參數。借用構造函數偽造對象或經典繼承即在子類型構造函數的內部調用超類型構造函數。 繼承 許多 OO 語言支持兩種繼承方式:接口繼承和實現繼承。接口繼承只繼承方法簽名,而實現繼承則繼承實際的方法。如前所述,由于函數沒有簽名,在 ECMAScri...
閱讀 8892·2021-11-18 10:02
閱讀 2578·2019-08-30 15:43
閱讀 2652·2019-08-30 13:50
閱讀 1363·2019-08-30 11:20
閱讀 2701·2019-08-29 15:03
閱讀 3623·2019-08-29 12:36
閱讀 927·2019-08-23 17:04
閱讀 613·2019-08-23 14:18