<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
1、在函数调用的时候,浏览器每次都会传递进两个隐式参数:<br>
一个是函数的上下文对象this,另一个则是封装实参的类数组对象arguments。<br><br>
2.arguments是类数组对象,除了length属性和索引元素之外没有任何Array属性。<br>
例如,它没有 pop方法。但是它可以被转换为一个真正的Array:<br>
<script>
// function f5() {
// // 即使没有形参,也可以用arguments
// // 可以使用slice来将arguments转换为真实数组
// var args1 = Array.prototype.slice.call(arguments);
// var args2 = [].slice.call(arguments);
// // 也可以使用Array.from()方法或者扩展运算符来将arguments转换为真实数组
// var args3 = Array.from(arguments);
// var args4 = [...arguments];
// }
// f5('name', 'age');
function fn() {
console.log(arguments);
console.log(typeof arguments); // object
console.log(toString.call(arguments)); // [object Arguments]
//Object.prototype.toString === toString true 但是函数可能会导致一些错误,例如如果定义了一个toString函数,那么引用都就是这个函数了
//注意,直接调用toString()方法这里不可以理解成为全局作用域调用toString()方法,即window.toString();
}
fn('name', 'age');
</script>
</body>
</html>
上一篇

2022-02-15
下一篇

2022-02-13