当前位置:Gxlcms > JavaScript > javascript管中窥豹形参与实参浅析_javascript技巧

javascript管中窥豹形参与实参浅析_javascript技巧

时间:2021-07-01 10:21:17 帮助过:3人阅读

引子:
今天看到别人的一个题目:
代码如下:

function fn(x){
x = 10;
arguments[0] = 20;
console.log(x,arguments[0])
}
fn()

感觉自己对这也是一知半解,自己也可以试一下,于是就特地分析一下。
本想从语言的角度来分析,无奈功力不够,只能粗浅的尝试一下,于是称之管中窥豹,还望大牛指正。
这是昨天写的,今天吃饭的时候又想了一下,想来想去感觉有些问题还是说得不靠谱,于是又试着修改了一下。
每一本js入门书籍都会提到,JS的函数内部有一个Arguments的对象arguments,用来函数调用的时候实际传入函数的参数,fn.length保存形参的长度。
这些对分析来说略有用处,可是我想得到更多形参的信息,不知道有谁有比较好的办法,我暂时无解。
于是只能模拟了。
先不理会模拟,从实际问题出发:
代码如下:

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">






输出20,20
代码如下:

function fn(x){
arguments[0] = 20;
console.log(x,arguments[0])
}
fn(1)

应该也都是输出20,20
代码如下:

function fn(x){
arguments[0] = 20;
console.log(x,arguments[0])
}
fn()

应该是undefined和20
原文来自cnblogs小西山子

人气教程排行