javascript複雜型別如何傳參
說明
1、在將實參傳遞給形參的過程中,複雜的資料型別傳遞給形參的是實參的地址,而非物件例項。
2、函式的形參也可以看作是一個變數。
當我們將引用型別的變數傳遞給形參時,我們實際上將變數儲存在棧空間中的堆地址複製給形參。形參和實參實際上儲存在同一個堆地址,所以操作的是同一個物件。
例項
<script> function Person(name) { this.name = name; } function fun1(x) { // 8.由於形參 x 指向 地址p,因此輸出的仍然是 地址p 所對應的物件例項{new Person('劉德華'); name = '劉德華'} // 9.第二個輸出:'劉德華' console.log(x.name); // 10.對 x.name 進行了重新的賦值,此時的物件例項改為{new Person('劉德華'); name = '張學友'} x.name = '張學友'; // 11.第三個輸出:'張學友' console.log('2' + x.name); } // 1.定義一個複雜資料型別 // 2.複雜資料型別 變數 p 在棧中儲存 地址p,變數 p 指向 地址p // 3.而真正的物件例項{new Person('劉德華'); name = '劉德華'}存放在堆中 // 4.變數 p 指向棧中的地址p,地址p 指向堆中的物件例項{new Person('劉德華'); name = '劉德華'} var p = new Person('劉德華'); // 5.第一個輸出:劉德華 console.log(p.name); // 6.將變數 p 傳遞給形參 x,即將 地址p 傳遞給形參 x // 7.然後變數 p 和形參 x 都指向了同一個地址,即 地址p fun1(p); // 12.此時 p.name 的物件例項為{new Person('劉德華'); name = '張學友'} // 13.第四個輸出:'張學友' console.log(p.name); </script>
以上就是javascript複雜型別的傳參方法,希望對大家有所幫助。更多Javascript學習指路:
推薦操作環境:windows7系統、jquery3.2.1版本,DELL G3電腦。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/3137/viewspace-2828847/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 簡單型別與複雜型別及原型鏈型別原型
- 使用ajax請求傳送複雜的json資料型別,並解決fastjson解析複雜的json資料型別的問題JSON資料型別AST
- hive複雜資料型別的用法Hive資料型別
- 複雜性Complex與複雜Complicated區別 - Sonja
- dolphinscheduler簡單任務定義及複雜的跨節點傳參
- Redis基礎、常用型別介紹、時間複雜度Redis型別時間複雜度
- TypeScript魔法堂:函式型別宣告其實很複雜TypeScript函式型別
- JavaScript引用型別-Object型別JavaScript型別Object
- XML Schema 複雜元素型別詳解:定義及示例解析XML型別
- Typescript複雜型別的宣告:寫一個工具函式庫TypeScript型別函式
- C語言中的複雜資料型別,你掌握了哪些?C語言資料型別
- JavaScript值型別和引用型別JavaScript型別
- JavaScript的資料型別如何判斷JavaScript資料型別
- 如何判斷JavaScript的資料型別?JavaScript資料型別
- javascript:引用型別JavaScript型別
- JavaScript 演算法之複雜度分析JavaScript演算法複雜度
- JavaScript - 基本型別與引用型別值JavaScript型別
- 複合型別(json)型別JSON
- 如何弄懂複雜專案
- JavaScript基礎複習(一) 語言特性及資料型別JavaScript資料型別
- javascript中如何判斷變數的型別?JavaScript變數型別
- 告別複雜的流關閉
- javascript演算法的複雜度介紹JavaScript演算法複雜度
- JavaScript - 資料型別JavaScript資料型別
- JavaScript 資料型別JavaScript資料型別
- JavaScript資料型別JavaScript資料型別
- 檔案型別多又複雜難以管理,使用Yotta企業雲盤型別
- Qt - TCP網路傳輸如何傳送結構體型別QTTCP結構體型別
- DDD之理解複雜度、尊重複雜度、掌控複雜度複雜度
- JavaScript複雜判斷的更優雅寫法JavaScript
- JavaScript 複雜判斷的更優雅寫法JavaScript
- 處理 JavaScript 複雜物件:深拷貝、Immutable & ImmerJavaScript物件
- 時間複雜度怎麼算?如何計算時間複雜度?時間複雜度
- 46_初識搜尋引擎_mapping複雜資料型別以及object型別資料底層結構大揭秘APP資料型別Object
- C#學習筆記--複雜資料型別、函式和結構體C#筆記資料型別函式結構體
- ECharts與資料視覺化:如何高效使用JavaScript實現複雜圖表Echarts視覺化JavaScript
- javaScript中的Array型別JavaScript型別
- JavaScript - 變數、值、型別JavaScript變數型別