javascript 函数
一、函数内部有2个特殊对象
1、this
2、arguments 。arguments.callee属性是一个指针,指向拥有arguments这个对象的函数。
二、每个函数都包含2个属性:
1、length: 表示函数希望接收的命名参数的个数。
2、prototype
三、每个函数都包含2个非继承而来的方法,这两个方法的用途都是在特定的作用域中调用函数,实际上等于设置函数体内 this 对象的值。
1、apply() 接收2个参数,一个是在其中运行函数的作用域,另一个是参数数组(可以是Array实例,也可以arguments是对象)。
<html>
<head>
<title>Function Type apply() Method Example</title>
<script type="text/javascript">
function sum(num1, num2){
return num1 + num2;
}
function callSum1(num1, num2){
return sum.apply(this, arguments);//因为是在全局作用域中调用的,此处this是window对象。
}
function callSum2(num1, num2){
return sum.apply(this, [num1, num2]);
}
alert(callSum1(10,10)); //20
alert(callSum2(10,10)); //20
</script>
</head>
<body>
</body>
</html>
<head>
<title>Function Type apply() Method Example</title>
<script type="text/javascript">
function sum(num1, num2){
return num1 + num2;
}
function callSum1(num1, num2){
return sum.apply(this, arguments);//因为是在全局作用域中调用的,此处this是window对象。
}
function callSum2(num1, num2){
return sum.apply(this, [num1, num2]);
}
alert(callSum1(10,10)); //20
alert(callSum2(10,10)); //20
</script>
</head>
<body>
</body>
</html>
2、call() 接收的第1个参数与appky相同,即在其中运行函数的作用域;其余的参数直接传递给函数
<html>
<head>
<title>Function Type call() Method Example</title>
<script type="text/javascript">
function sum(num1, num2){
return num1 + num2;
}
function callSum(num1, num2){
return sum.call(this, num1, num2);
}
alert(callSum(10,10)); //20
</script>
</head>
<body>
</body>
</html>
<head>
<title>Function Type call() Method Example</title>
<script type="text/javascript">
function sum(num1, num2){
return num1 + num2;
}
function callSum(num1, num2){
return sum.call(this, num1, num2);
}
alert(callSum(10,10)); //20
</script>
</head>
<body>
</body>
</html>