![](/img/trans.png)
[英]Javascript: How do I pass the value (not the reference) of a variable to a function?
[英]Pass variable to Function by reference, and change value it?
我有一個傳遞給函數的變量,並返回其更新后的值。 語法看起來非常類似於:
var myName = 'hello all.';
FuncUpperCase(myName);
function FuncUpperCase(myName) {
myName = myName.toUpperCase();
return myName;
}
但是變量myName
似乎沒有被toUpperCase()
的值修改。
注意:我不想編寫var newName = FuncUpperCase(myName)
,因為我不喜歡這種語法。
這可能會回答您的問題:
或者,傳遞一個對象而不是一個字符串。
var something = {};
something.word = "word";
var allcaps = function(inp) {inp.word = inp.word.toUpperCase();};
allcaps(something);
//something.word has now been changed
alert(something.word);
在JavaScript中,一切都是通過值傳遞的。 這意味着,如果為函數中的給定參數重新分配值,則不會在給定函數范圍之外修改該值。 要理解的另一件重要事情是,對象引用的值是如何工作的:如果將對象傳遞給函數,則它也是通過值給出的,但是如果訪問此對象的屬性,則將修改實際對象也位於函數外部,但不是值(也就是說,是對對象的引用的值)。
最后,您必須將一個對象傳遞給函數並修改其屬性以使其在外部持久存在。
function setToUpperCase(object, key) {
object[key] = ('' + object[key]).toUpperCase();
return object[key];
}
並像這樣使用它:
var holder = { word: 'blah' };
setToUpperCase(holder, 'word');
console.log(holder.word); // BLAH
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.