蓉杠学习网

html中的js函数,js中html

大家好,今天小编关注到一个比较意思的话题,就是关于html中的js函数问题,于是小编就整理了2个相关介绍html中的js函数的解答,让我们一起看看吧。

  1. 在js中定时调用函数foo()如何写?
  2. JavaScript中函数都是值传递吗?

在js中定时调用函数foo()如何写?

调用的方法:&lt;script&gt;function foo(){ alert(new Date());setTimeout("foo()",5000);}foo();</script>foo的原型:void foo (int x,int pp[],int *n){ int i,p p=0; for (i=1;i<x/2;i=+2) if (x%i==0) { p++; pp[p]=i; } *n=p;}

JavaScript中函数都是值传递吗?

是的,JavaScript中函数都是值传递,哪怕是object类型参数也是一样,不过此时这个值就变为该object的地址值了,这块儿容易造成误解,因此要格外注意!

html中的js函数,js中htmldiv>
图片来源网络,侵删)

下面我们具体看一下:

function setPerson(obj) {
// 现在obj 和 person 指向内存中的同一块地址1
obj.name = "人生之路慢慢长";
obj.fensi = 800;
// obj 指向了新对象所在的地址2,切断了和地址1的联系
obj = new Object();
obj.fensi = 100000;
}
var person = new Object();
setName(person);
console.log(person.name); // 人生之路慢慢长
console.log(person.fensi); // 800

从上面的例子我们可以看到,person已经被赋予"人生之路慢慢长"的名字,我们来分析下,当我们把 person 的地址值传递给 obj 之后,obj 和 person 都指向了内存中的同一块地址1,所以这里对 obj 进行添加删除属性操作,都是在地址1上操作的,那么name属性以及fensi属性就会被赋予到person上了(使用自己的账号来举个栗子,(✪ω✪))。

后面又修改了一次obj的fensi属性,但是为何最后fensi不是100000还是800呢(我倒希望是100000啊,哈哈)?关键点就在于“obj=new Object()”对 obj 重新赋值这句上, 这时候会切断了 obj 和地址1之间的联系,所以对 obj 上的任何操作也不会反映到 person 对象上。如果函数的参数是按引用传递的话, person 也会跟着指向地址2 , 然而事实上 person 指向的还是地址1,最终fensi还是之前的800而不是100000啦。

html中的js函数,js中html
(图片来源网络,侵删)

这点儿很容易搞混,所以大家要格外注意,在实际使用中不断强化,填好这个坑。大家如果觉得不错欢迎点赞哦,或者还有什么想法可以评论,大家一起讨论学习

J***aScript中,传递变量就是值传递,如果传递一个对象那就是引用传递,话不多说,上代码

值传递

html中的js函数,js中html
(图片来源网络,侵删)

调用fun函数并传递变量a,在函数内部传递的参数a自加1后,全局变量a的值任然是5,说明参数传递过程中,只是将a的值传递过去了,属于值传递。

引用传递

对象obj的属性age原始值为20,调用函数,并传递obj,在函数内部改变_obj对象的age属性值为30,调用函数后,再输出obj对象的age属性,发现其值也跟着改变为了30,说明参数对象_obj与obj在内存中,指向了同一地址区域,属于引用传递。

到此,以上就是小编对于html中的js函数的问题就介绍到这了,希望介绍关于html中的js函数的2点解答对大家有用。

[免责声明]本文来源于网络,不代表本站立场,如转载内容涉及版权等问题,请联系邮箱:83115484@qq.com,我们会予以删除相关文章,保证您的权利。 转载请注明出处:http://www.rongung.com/post/32779.html

分享:
扫描分享到社交APP