织梦小程序网站模板_JavaScript函数参数的传递方式详解

  • 栏目:行业动态 时间:2021-01-12 13:23 分享新闻到:
<返回列表

JavaScript函数参数的传递方式详解       本文主要介绍了JavaScript函数参数的传递方式,具有很好的参考价值。下面跟着小编一起来看下吧

JavaScript使用一个变量对象来追踪变量的生存期。基本类型值被直接保存在变量对象内;而引用类型值则作为一个指针保存在变量对象内,该指针指向实际对象在内存中的存储位置。

基本类型值的传递

向参数传递基本类型值时,被传递的值会被复制给一个局部变量(即命名参数,或者是arguments对象中的一个元素)。

function addOne (num) {
 num++;
 return num;
var count = 1;
var result = addOne(count);
console.log(count); //1
console.log(result); //2

在上面的例子中,变量count的值被传递给函数的参数num以便在函数中使用,此时变量count和参数num的值虽然是一样的,但是它们是两个相互独立的变量,在函数中改变参数num的值并不会影响函数外部的变量count的值。

因此JavaScript中函数的基本类型值参数的传递是按值传递的。

引用类型值的传递

function setName (obj) {
 obj.name = 'Nicholas';
var person = new Object();
setName(person);
console.log(person.name); //'Nicholas'

在上面的例子中,变量person的值被传递给函数的参数obj,此时在函数内部为参数obj添加一个name属性,函数对参数obj的使得函数外部的变量person也获得了一个name属性。从结果上看,JavaScript中函数的引用类型值参数的传递似乎是按引用传递的。

然而并非如此。变量person的值是引用类型值,因此它的值在变量对象中可以看做是一个实际对象在内存中的地址(或指针)。传递参数以后参数obj的值是也是该对象在内存中的地址,因此在函数中操作参数obj的值所引用的对象相当于操作变量person的值所引用的对象。

function setName (obj) {
 obj.name = 'Nicholas';
 obj = new Object();
 obj.name = 'Greg';
 return obj;
var person = new Object();
var result = setName(person);
console.log(person.name); //'Nicholas'
console.log(result.name); //'Greg'

如果参数传递是按引用传递的,在上面的例子中,函数改变了参数obj的值所引用的对象,那么相对应的变量person的值所引用的对象也会改变。改变函数的写法或许能更加有助于理解参数的按值传递。

function setName () {
 var obj = arguments[0];
 obj.name = 'Nicholas';
 obj = new Object();
 obj.name = 'Greg';
 return obj;
}

虽然变量person和参数obj的值一样都是同一个对象在内存中的地址,但它们是两个相互独立的变量。如果在函数中改变参数obj的值,使其指向内存中另外一个对象,变量person的值不会改变,还是指向原来的对象。

因此JavaScript中函数的引用类型值参数的传递是按值传递的。

结论

JavaScript中所有函数的参数都是按值传递的。

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持凡科!


分享新闻到:

更多阅读

织梦小程序网站模板_JavaScript函数参数的

行业动态 2021-01-12
JavaScript涵数主要参数的传送方法详细说明 文中关键详细介绍了JavaScript涵数主要参数的传...
查看全文

微信小程序名片创建_canvas完成刮刮卡效果

行业动态 2021-01-12
canvas完成刮奖实际效果 文中关键详细介绍了应用canvas完成刮奖实际效果的案例。具备非...
查看全文

无锡小程序开发-网络服务器安全:如何去

行业动态 2021-01-12
网络服务器在互联网机构中是非常非常容易网站被黑客对于进攻的,提升Web网络服务器安全性...
查看全文
返回全部新闻


区域站点: 南丰县如何创建小程序   南宫市免费制作小程序   囊谦县自助下单小程序怎么做   南和县h5小程序   南华县如何创建小程序   南江县免费制作小程序   南京市自助下单小程序怎么做   南靖县h5小程序   南康市如何创建小程序   南乐县免费制作小程序   南陵县自助下单小程序怎么做   南宁市h5小程序   南平市如何创建小程序   南皮县免费制作小程序   南市区自助下单小程序怎么做   南通市h5小程序   南投县如何创建小程序   南雄市免费制作小程序   南溪县自助下单小程序怎么做   南阳市h5小程序   南漳县如何创建小程序   南召县免费制作小程序   南郑县自助下单小程序怎么做   那坡县h5小程序   那曲县如何创建小程序   纳雍县免费制作小程序   讷河市自助下单小程序怎么做   内黄县h5小程序   内江市如何创建小程序   内丘县免费制作小程序   内乡县自助下单小程序怎么做   嫩江市h5小程序   聂荣县如何创建小程序   尼玛县免费制作小程序   尼木县自助下单小程序怎么做   宁安市h5小程序   宁波市如何创建小程序   宁城县免费制作小程序   宁德市自助下单小程序怎么做   宁都县h5小程序   宁国市如何创建小程序   宁海县免费制作小程序   宁化县自助下单小程序怎么做   宁晋县h5小程序   宁陵县如何创建小程序   宁明县免费制作小程序   宁南县自助下单小程序怎么做   宁强县h5小程序   宁陕县如何创建小程序   宁武县免费制作小程序   宁乡市自助下单小程序怎么做   宁阳县h5小程序   宁远县如何创建小程序   农安县免费制作小程序   磐安县自助下单小程序怎么做   盘锦市h5小程序   盘山县如何创建小程序   磐石市免费制作小程序   盘州市自助下单小程序怎么做   蓬安县h5小程序   澎湖县如何创建小程序   蓬莱市免费制作小程序   彭山县自助下单小程序怎么做   蓬溪县h5小程序   彭阳县如何创建小程序   彭泽县免费制作小程序   彭州市自助下单小程序怎么做   偏关县h5小程序   平安县如何创建小程序   平昌县免费制作小程序   平定县自助下单小程序怎么做   屏东县h5小程序   平度市如何创建小程序   平果县免费制作小程序   平和县自助下单小程序怎么做   平湖市h5小程序   平江县如何创建小程序   平乐县免费制作小程序   平凉市自助下单小程序怎么做   平利县h5小程序   平罗县如何创建小程序   平陆县免费制作小程序   屏南县自助下单小程序怎么做   平泉市h5小程序   屏山县如何创建小程序   平顺县免费制作小程序   平塘县自助下单小程序怎么做   平潭县h5小程序   平武县如何创建小程序   萍乡市免费制作小程序   平乡县自助下单小程序怎么做   平阳县h5小程序   平遥县如何创建小程序   平阴县免费制作小程序   平邑县自助下单小程序怎么做   平远县h5小程序   平舆县如何创建小程序   皮山县免费制作小程序   普安县自助下单小程序怎么做   浦北县h5小程序   浦城县如何创建小程序   普洱市免费制作小程序   普格县自助下单小程序怎么做   浦江县h5小程序   普兰县如何创建小程序   普宁市免费制作小程序   莆田市自助下单小程序怎么做   迁安市h5小程序   乾安县如何创建小程序   潜江市免费制作小程序   潜山市自助下单小程序怎么做  

友情链接: H5建站 h5答题模板 微信公众号h5制作 h5转小程序 手机版

Copyright © 2002-2020 自助下单小程序怎么做_h5小程序_如何创建小程序_免费制作小程序_微信小程序店铺 版权所有 (网站地图) 备案号:粤ICP备10235580号