訪問變數有按值和按引用兩種方式,
基礎資料型別按值訪問,引用資料型別按引用(即指標或位址)訪問。
但引數只能按值傳遞,
在向引數傳遞基本型別的值時,被傳遞的值會被複製給命名引數,引用型別時,傳遞的是它指標內儲存的值
借用網上的乙個例子
function
setname
(obj)
var person=new
object();
setname(person);
console.log('第四次'+person.name);
第一次nick
第二次undefined
第三次greg
第四次nick
由此可以證明是按值傳遞,若是按引用傳遞,則第三次和第四次應該結果一樣,
一段時間過後,再次來看這個,發現寫的有些問題:
例如:
var person = ;
function changename(obj)
changename(person);
// 列印出來的是
console.log(person);
// 此時列印出來的
因為操作的是同乙個物件,所以兩次列印的值一致
函式引數傳遞方式 按值傳遞
基本資料型別賦值,是直接值發生了賦值,因此改變後,各自相互不影響。但是引用資料型別的賦值,是儲存在變數物件中的引用發生了賦值,因此複製之後的這兩個引用實際訪問的實際是同乙個堆記憶體中的值。當改變其中乙個時,另外乙個自然也被改變。第乙個是屬於基本型別賦值,a和b賦值完兩個就完事了,以後各走各的.第二個...
scala 引數傳遞 按值傳遞 按名傳遞
package leetcode import scala.util.random object function args def getrandom call by name 按名傳遞,傳入引數變數名,如果runbyname內部用到,再去求值 f string int long表示 該無參函式的...
Python按值傳遞引數和按引用傳遞引數
python按值傳遞引數和按引用傳遞引數 按值傳遞引數 使用乙個變數的值 數字,字串 放到實參的位置上 注 傳遞過去的是變數的副本,無論副本在函式中怎麼變,變數的值都不變 傳遞常量 傳遞常量 定義乙個函式,輸出 歡迎,接收到的引數 name defhuanying name print 歡迎 nam...