新浦京81707con > 注册购买 > 参数按值传递,JS引用传递与值传递的区别与用法

原标题:参数按值传递,JS引用传递与值传递的区别与用法

浏览次数:77 时间:2019-07-10

html:

定义
ECMAScript中颇具函数的参数都以按值传递的。

本文实例陈说了JS援引传递与值传递的区分与用法。分享给我们供我们仿效,具体如下:

<li>
  <a class="delete" href="__URL__/deleteSelected/navTabId/__MODULE__" target="selectedTodo"  posttype="string" calback="navTabAjaxMenu" rel='ids' title="你确定要删除吗?" warn="请选择节点">批量删除</a>
</li>

<table class="table" width="100%" layoutH="138">          <thead>              <tr>                  <th width="10"><input type="checkbox" class="checkboxCtrl" group="ids" /></th>                  <th width="60">编号</th>              </tr>          </thead>          <tbody>          <volist id="vo" name="list">              <tr>                  <td><input name="ids" type="checkbox" value="{$vo.id}"> </td>                  <td>{$vo['id']}</td>              </tr>          </volist>  </table>

哪些是按值传递呢?

此间详细解释JS值传递和援引传递以及两岸的分歧。

 php:

约等于说,把函数外部的值复制给函数内部的参数,就和把值从二个变量复制到另一个变量同样。

小编们先来解释一下那多个的基本概念吧。

public function deleteSelected() {          //删除指定记录          $name = $this->getActionName();          $model = D($name);          if (!empty($model)) {              $pk = $model->getPk();              $ids = $_REQUEST['ids'];              if (!empty($ids)) {                  $condition = array($pk => array('in', explode(',', $ids)));                  if (false !== $model->where($condition)->delete()) {                      $sql =  $model->_sql();                      $this->success("删除成功!");                  } else {                      $this->error('删除失败!');                  }              } else {                  $this->error('非法操作');              }          }

按值传递

函数调用中,传递是二个数值,我们称为 “值传递”。
函数调用中,传递是目的,一般称为 “引用传递”。

 

举个大概的例证:

当今这里完整上证实,这两侧的本质分歧就在于传递的数据类型不均等,值传递传递的是二个值,而引用传递传递的是二个对象。

 原理是基于Web表单提交时方可传递数组,例如:

var value = 1;
function foo(v) {
  v = 2;
  console.log(v); //2
}
foo(value);
console.log(value) // 1

看一下代码以及代码中的注释。

<input type="text" name="firstname">  <input type="text" name="lastname">  <input type="text" name="email">  <input type="text" name="address">    <input type="text" name="tree[tree1][fruit]">  <input type="text" name="tree[tree1][height]">    <input type="text" name="tree[tree2][fruit]">  <input type="text" name="tree[tree2][height]">    <input type="text" name="tree[tree3][fruit]">  <input type="text" name="tree[tree3][height]">  

很好精晓,当传递 value 到函数 foo 中,相当于拷贝了一份 value,假如拷贝的那份叫 _value,函数中期维修改的都以 _value 的值,而不会潜移暗化原来的 value 值。

一、引入

则传递过来的是:

援引传递

function func(a)
{
  a  ;
}
// 因为函数都没有调用,所以找不到 a
console.log(a);
//结果明显是undefined了。
//所以看下面两个例子。
$_POST[] = array(      'firstname'=>'value',      'lastname'=>'value',      'email'=>'value',      'address'=>'value',      'tree' => array(          'tree1'=>array(              'fruit'=>'value',              'height'=>'value'          ),          'tree2'=>array(              'fruit'=>'value',              'height'=>'value'          ),          'tree3'=>array(              'fruit'=>'value',              'height'=>'value'          )      )  )  

拷贝尽管很好通晓,可是当班值日是四个目迷五色的数据结构的时候,拷贝就能够发生质量上的题目。

二、值传递

  

之所以还恐怕有另一种传递格局叫做按援用传递。

var a = 5;
function func(a)
{
  // 函数中开辟了一个空间 a == 5
  // a==6
  a  ;
}
func(5);
// 结果,函数没有改变到 外部 a 的值,所以,结果是 5
console.log(a);
// 函数调用中,传递是一个数值,我们称为 “值传递”
// 特点: 有多个不同的空间,空间都是在栈中的
//    所以 修改函数中的空间,对外部空间是没有影响的

  

所谓按引用传递,正是传递对象的援引,函数内部对参数的别的改变都会潜濡默化该对象的值,因为两岸引用的是同三个对象。

三、援用传递

本文由新浦京81707con发布于注册购买,转载请注明出处:参数按值传递,JS引用传递与值传递的区别与用法

关键词: 新浦京81707con

上一篇:新萄京手机版thinkphp日志分析

下一篇:没有了