js的 oop疑惑

笨么笨 2015-05-04 02:25:14
<script>
function Set(data){
this.data = data;
this.age = age;
}

function age(){
var data = this.data;

data.push(5,45);
alert(data);
alert(this.data);
}

var arr1 = [1,2,3,4];
var set = new Set(arr1);
alert(set.age());
</script>


明明是对讲对象的属性赋值给变量的,为什么改变变量的值,对象属性的值也跟着改变了呢?是因为地址引用?求大牛指点迷津
...全文
112 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
Go 旅城通票 2015-05-04
  • 打赏
  • 举报
回复
数组是对象,地址引用。

            function Set(data) {
                this.data = data;
                this.age = age;
            }

            function age() {
                var data = this.data;

                data.push(5, 45);
                alert(data);
                alert(this.data);
            }

            var arr1 = [1, 2, 3, 4];
            var set = new Set(arr1);
            set.age();
            arr1.push(111);//111也加入了
            alert(set.data);

87,907

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧