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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- javascript 函式引用型別和簡單型別傳參JavaScript函式型別
- 簡單型別與複雜型別及原型鏈型別原型
- CXF--處理複雜型別型別
- hive複雜資料型別的用法Hive資料型別
- Java複雜資料型別用法 (轉)Java資料型別
- 使用ajax請求傳送複雜的json資料型別,並解決fastjson解析複雜的json資料型別的問題JSON資料型別AST
- 使用AIDL實現程式間的通訊之複雜型別傳遞AI型別
- Oracle動態SQL引數支援複雜型別OracleSQL型別
- javascript如何識別瀏覽器型別JavaScript瀏覽器型別
- Redis基礎、常用型別介紹、時間複雜度Redis型別時間複雜度
- TypeScript魔法堂:函式型別宣告其實很複雜TypeScript函式型別
- dolphinscheduler簡單任務定義及複雜的跨節點傳參
- 複雜性Complex與複雜Complicated區別 - Sonja
- javascript函式引數引用型別傳遞其實也是一個複製過程JavaScript函式型別
- Typescript複雜型別的宣告:寫一個工具函式庫TypeScript型別函式
- C語言中的複雜資料型別,你掌握了哪些?C語言資料型別
- XML Schema 複雜元素型別詳解:定義及示例解析XML型別
- JavaScript引用型別-Object型別JavaScript型別Object
- MaxCompute-ODPS重灌上陣 第三彈-複雜型別型別
- 在asp.net AJAX客戶端使用複雜資料型別ASP.NET客戶端資料型別
- 物件導向程式設計:Java複雜資料型別用法(轉)物件程式設計Java資料型別
- 如何判斷JavaScript的資料型別?JavaScript資料型別
- JavaScript的資料型別如何判斷JavaScript資料型別
- 如何弄懂複雜專案
- JavaScript值型別和引用型別JavaScript型別
- javascript基本型別 引用型別 基本包裝型別JavaScript型別
- JavaScript 演算法之複雜度分析JavaScript演算法複雜度
- LONG型別複製型別
- javascript:引用型別JavaScript型別
- MVC驗證11-對複雜型別使用jQuery非同步驗證MVC型別jQuery非同步
- JavaScript - 基本型別與引用型別值JavaScript型別
- Redis的雜湊型別(Hash)Redis型別
- js如何限定圖片上傳的型別JS型別
- javascript中如何判斷變數的型別?JavaScript變數型別
- JavaScript如何獲取元素的標籤型別JavaScript型別
- javascript如何判斷一個物件的型別JavaScript物件型別
- JavaScript基礎複習(一) 語言特性及資料型別JavaScript資料型別
- Scala結構型別與複合型別解析型別