3.6.8 with语句
with语句将代码的作用域设置到一个特定的对象中,目的:为了简化多次编写同一个对象的工作,用法如下:
with(expression) statement;
var hostName = localhost.hostName;
var id = localhost.user.id
//上面代码和下面相同
with(localhost) {
var hostName = hostName;
var id = user.id
}
下方的代码,用with关联了localhost对象。在代码块内的每个变量被认为是一个局部变量,若在局部环境中找不到该变量,则会查询关联的localhost对象是否有同名属性。(相当于把该代码块的上层作用域改为关联的对象)
注意严格模式下不可以使用with,视为语法错误。
3.7.1 理解参数
可以向js函数传递任意数量的参数,并可以通过arguments对象来访问这些参数。
function getLength() {
alert(arguments.length);
alert(arguments[0]);//输出参数列表的第一个
}
getLength(1, 2);//输出2 1
getLength("hello world");//输出1 hello world
3.7.2 不支持传统意义上的重载
js函数没有函数签名(接受参数的类型和数量),因为其参数都是由包含0或多个值的数组来表示,而没有函数签名,故不存在真正的重载。(函数名字相同而函数签名不同,则为不同函数)可以通过再函数内判断arguments的长度或特定值来的不同来执行不同的代码来实现。