美文网首页
关于JS的引用与传值

关于JS的引用与传值

作者: 这个大叔有丶冷 | 来源:发表于2017-05-10 20:15 被阅读0次

JS基本数据类型有undefined,boolean,number,string,null,是传值赋值。
除此之外JS的其它类型都是引用类型,变量中存的不是值,而是地址。

var A = {
    a: function() {
        console.log("改变之前");
    }
}

var B = { }
B.a = A.a;
B.a(); // 改变之前
A.a = function() {
    console.log("改变之后");
}
B.a(); // 改变之前

代码中很简单很常见也很容易出错的例子,对吧?
A.a,B.a都只是一个变量,存储着function(){}对象的地址,B.a = A.a,实际上是将A.a存的地址复制给B.a,当A.a存储的地址改变后,不会影响B.a的地址,B.a存的地址仍然是之前A.a赋给它的,不要误认为B.a指向A.a,A.a指向function!

其实我最近在研究es5中的继承机制,碰到复制原型的继承方法时产生这个困惑,记录一下这个问题,也算为我之后准备写的一篇关于es5中原型链继承和断开原型链的复制继承做个铺垫。

相关文章

  • 关于JS的引用与传值

    JS基本数据类型有undefined,boolean,number,string,null,是传值赋值。除此之外J...

  • 关于js函数的引用传值

    事情总是从一个问题开始 这个问题还是很容易答错的,至少我第一次就错了哈哈 先说说js函数参数传递 值传递 结果该是...

  • JS中的引用类型

    JS 引用类型变量的值是一个指针,指向堆内存中的实际对象。 基本类型是传值调用 引用类型传共享调用 传值调用(Pa...

  • 深拷贝

    传值还是传引用 传值还是传引用?很基础的问题,对于刚刚接触编程的同学来说,却是一个大坑。在js中,所有的对象都是通...

  • Js基础知识-手动实现深拷贝

    本文将手动实现引用类型的深拷贝关于值类型与引用类型可阅读下方文章:JS基础类型直通车:Js基础知识-变量类型Js基...

  • 视图传值和引用静态文件_Django学习笔记(二)-python

    视图传值和引用静态文件_Django学习笔记(二)-python3 引入js文件 如图: c. 视图传值 -1....

  • 2018-08-23

    今日总结:数组的传值与传引用(引用是内存共同体,传值需要接受返回值,引用不必)三维数组(不要在循环里面var_du...

  • PHP开发经验总结

    请说明 PHP 中传值与传引用的区别。什么时候传值什么时候传引用? 按值传递:函数范围内对值的任何改变在函数外部都...

  • js读书笔记

    js原始值类型 引用类型。对象与数组可以包含对象与数组,json的基础。装箱 拆箱值到引用与引用到值。闭包是根据定...

  • 无标题文章

    OC与JS的交互 这个demo主要做了以下几个功能: js调用oc,并传值 oc调用js 并传值 js调用oc,...

网友评论

      本文标题:关于JS的引用与传值

      本文链接:https://www.haomeiwen.com/subject/dgogtxtx.html