2017年6月15日 星期四

Call/Pass by Reference

※Call/Pass by Reference 

Call/Pass by Value:將變數傳進另一隻方法當參數,方法對這個變數所做的事,和原本的沒有關係

Call/Pass by Reference:將變傳進另一隻方法當參數,方法對這個變數所做的事,會影響到原來的

這篇講的是 Call/Pass by Reference


<script>
'use strict'
    window.onload = () => {
        var s = new Set();
        zzz(s);
        alert(s.size); // 1
    }
    
    var zzz = (y) => {
        y.add('a');
    }
</script>




※new

<script>
'use strict'
    window.onload = () => {
        var s = new Set();
        zzz(s);
        alert(s.size); // 1
    }
    
    var zzz = (y) => {
        y.add('a');
    
        // y = null;
        // y = 'undefined';
        // y = 'xxx';
        y = new Set();
        y.add('b');
        y.add('c');
    }
</script>

※受影響的只在 new 之前,之後自己是獨立的

※如果將 y = null; y = 'undefined';y = 'sss'; 都不會對原來的產生影響

※甚至宣告一個新的 Set,然後賦值給 y 也沒有用

沒有留言:

張貼留言