zoukankan      html  css  js  c++  java
  • javascript 传递引用类型参数

    JavaScript代码如下:

    function setName(obj){ 
    obj.name = "test1"; 
    obj = new Object(); 
    obj.name
    = "test2"; } var person = new Object(); setName(person); alert(person.name);

    运行结果:页面弹出“test1”

    代码分析:为什么不弹出“test2”?

     var person = new Object();    本例中首先生成一个object对象,并将person(类似于指针)指向这个object对象,暂时将这个object对象命名为objectA:person->objectA

     setName(person);   将person作为参数传递给setName函数,传递的其实是objectA在内存中的地址,此时函数体中obj就是一个引用类型,指向内存中的objectA对象:obj->objectA,person->objectA

    setName()函数体中:

    {

          代码第一行:obj.name = "test1";     等价于objectA.name=“test1”;   此时obj.name=person.name=“test1”

          代码第二行:obj = new Object();      这一句是关键,obj指向了一个新的对象new Object(),暂时命名为objectB,此时obj->objectB,person->objectA

          代码第三行:obj.name = "test2";     等价于objectB.name=“test2”,此时person指向的对象ObjectA的name属性仍然为"test1"

    }

  • 相关阅读:
    用的fileupload组件实现的大文件上传
    手机刷机
    Bonferroni correction
    FTP 常用命令
    Oracle 10 参数配置说明
    Solaris 10 ftp,telnet,ssh,sendmail
    solaris10下安装oracle10g
    solaris10中安装oracle内核参数的调整
    matlab从txt/csv文件中读取一行
    SUN服务器Solaris10安装步骤
  • 原文地址:https://www.cnblogs.com/king1302217/p/3282627.html
Copyright © 2011-2022 走看看