javascript函数
在javascirpt 1.1中除了可以使用 function 语句定义函数之外,还可以使用Function()构造函数来定义函数,
var 函数名=new Function("参数1","参数2","参数3"....."函数体");
var myfun=new Function("x","y","return x+y ;");
var myfun=new Function("x","y","var num=x+y;return num;");
上面代码使用Function()构造函数定义了一个名为 myfun 的函数,
function myfun(x,y)
{
return x+y;
}
使用Function()构造函数和使用function语句的区别:
1.使用Function()构造函数可以动态定义和编译,而function语句只能预编译,因此所在每次调用使用Function()
函数是需要经常使用的函数应该避免使用Function来定义函数
2.使用Funciton()构造函数定义函数时,可以将函数的定义写成表达式,而使用Function的语句就是语句块
3.使用Funciton()构造函数可以在一个表达式中定义函数,而funciton语句就不能。
function myfun(x,y)
{
if(typeof(x)=="number"&&typeof(y)=="number")
{
var z=x*y;
return z;
}else
{
return "传入参数不正确";
}
}
在JavaScirpt中提供了一个Arguments对象,该对象可以获取从javascirpt函数中传过来的参数,并
净这些参数放在argu
ments[]数组中,
function mufun(x,y)
{
if(arguments.length!=2) return "参数不正确";
//arguments[0];是函数的第一个参数
}
caller属性:判断函数调用情况
// caller demo {
function callerDemo() {
if (callerDemo.caller) {
var a= callerDemo.caller.toString();
alert(a);
} else {
alert("this is a top function");
}
}
function handleCaller() {
callerDemo();
}
系统函数
1.编码函数escape("abc!#$%");将字符串中的非文字,数字的字符转换成相应的ASCII码值。
2.解码函数unescape();是将ASII码的文字转换成一般的文字和 escape();功能相反
3.系统函数 call 和 apply使用如下:
function MyClass(){
}
MyClass.prototype.addAge(a,b){
return a+b;
};
var myclass = new MyClass();
var fun = myclass.addAge;
//call
func.call(myclass,5,6);//this or obj, 参数1,参数2,参数3。。。
//apply
func.apply(myclass,[5,6]);//this or obj, 然后数组[]
本文介绍了JavaScript中使用Function构造函数及function语句定义函数的方法,对比了两者的区别,并讲解了Arguments对象、caller属性及系统函数如escape、unescape、call和apply的使用。
79

被折叠的 条评论
为什么被折叠?



