JavaScript中值類型與引用類型實例說明
<script type="text/javascript">
var str = 'abced';
var obj = new String(str);
function newToString() {
return 'hello,world';
}
function func(val) {
val.toString = newToString;
}
func(str); //ps:實際只傳入了str的值,因此對它的toString修改是無意義的 傳入的str相當(dāng)于是他的一個副本 修改副本的方法 不影響原來的運(yùn)算結(jié)果
alert(str.toString()); //結(jié)果為 abced
func(obj); //ps:傳入了一個對象的引用(即str本身,或者說是內(nèi)存地址),因此對它的toString修改將會影響到后來 alert(obj.toString()) 的云尋
alert(obj.toString()); //結(jié)果為 hello,world
</script>
附:
JavaScript中的值類型與引用類型
數(shù)據(jù)類型 值/引用類型 備注
undefined 值 無值
number 值
boolean 值
string 值 字符串在賦值運(yùn)算中會按引用類型的方式來處理
function 引
object 引
js的值類型和引用類型
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]
值類型的變量直接保存變量值;引用變量卻持有的引用(可比較c/c++的指針,一把"鑰匙"),通過引用可以迅速找到存儲內(nèi)容的內(nèi)存區(qū)域。
值類型一般是一些固定的字節(jié)大小的;引用類型往往存儲數(shù)組,對象,函數(shù)這些實現(xiàn)很難知道占據(jù)內(nèi)存大小的量。
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]
介于2中類型之間的特殊的字符串類型:
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]
每次建立一個新字符串-----不變對象。
補(bǔ)充:像"hello"這種字符串,當(dāng)沒有變量引用它時(也就是引用計數(shù)為0),該到了垃圾回收的時候啦*-*
相關(guān)文章
Bootstrap3 多個模態(tài)對話框無法顯示的解決方案
這篇文章主要介紹了Bootstrap3 多個模態(tài)對話框無法顯示的解決方案,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2017-02-02JS前端面試必備——基本排序算法原理與實現(xiàn)方法詳解【插入/選擇/歸并/冒泡/快速排序】
這篇文章主要介紹了JS前端面試基本排序算法原理與實現(xiàn)方法,結(jié)合實例形式詳細(xì)分析了JS常見的基本排序算法相關(guān)原理、實現(xiàn)方法、時間復(fù)雜度及操作注意事項,需要的朋友可以參考下2020-02-02javascript下利用for( in )語句 獲得所有事件名稱的代碼
2008-02-02JavaScript實現(xiàn)單擊網(wǎng)頁任意位置打開新窗口與關(guān)閉窗口的方法
這篇文章主要介紹了JavaScript實現(xiàn)單擊網(wǎng)頁任意位置打開新窗口與關(guān)閉窗口的方法,涉及javascript窗口的相關(guān)操作函數(shù)與使用技巧,需要的朋友可以參考下2017-09-09BootStrap模態(tài)框和select2合用時input無法獲取焦點的解決方法
在bootstrap的模態(tài)框里使用select2插件,會導(dǎo)致select2里的input輸入框沒有辦法獲得焦點,沒有辦法輸入。怎么解決這個問題呢?下面小編給大家?guī)砹薆ootStrap模態(tài)框和select2合用時input無法獲取焦點的解決方法,一起看看吧2017-09-09js 通過html()及text()方法獲取并設(shè)置p標(biāo)簽的顯示值
這篇文章主要介紹了js 通過html()及text()方法獲取并設(shè)置p標(biāo)簽的顯示值,需要的朋友可以參考下2014-05-05