WEB开发网
开发学院网页设计JavaScript javascript 学习笔记2-函数 阅读

javascript 学习笔记2-函数

 2009-09-06 00:00:00 来源:WEB开发网   
核心提示: 每个函数都有prototype属性,它引用的是预定义的原型对象,javascript 学习笔记2-函数(6),这个原型对象在new一个object时起作用,也就是当你 new调用一个构造函数时起作用,在函数体内这一参数是this的值(不太理解)3、其它的参数是参数值,Apply与call一样,这

每个函数都有prototype属性,它引用的是预定义的原型对象。这个原型对象在new一个object时起作用,也就是当你 new调用一个构造函数时起作用。这个原型对象在你定义自己的对象类时也常用,也起到了很重要的作用。

length

函数也有length属性,只是我们比较少用,它指的是这个函数在定义是所指定的参数的个数,而不是像arguments的length一样指的是实质传入函数的参数的个数。因此,我们可以写个函数,用来指定传入的参数个数是否是指定的,从而对那些对参数个数有严格要求的函数的调用进行控制:

Js代码   

function check(){ 
 var expectedNum = arguments.callee.length; 
 var actedNum = arguments.length; 
 if(parseInt(expectedNum)!=parseInt(actedNum)){ 
 throw new Error(”调用的参数与函数定义时期望的参数个数不符合!”); 
 } 
}

注意上面是用arguments的callee属性来引用自身(因为在函数体内其它的方法无法指定函数本身)。

定义自己的函数属性

这里的“定义自己的函数属性”指的是:有时你想用一个全局变量时,而这个全局变量只在某个函数体内使用,并没有在其它的函数体内被使用。这时候,可以考虑把它定义为这个函数的属性并当作全局变量来使用,如下:

Js代码  

f.counter = 0; 
function f(){ 
 return f.counter++; 
}

在上面的代码中把counter不作为全局变量,而作为f的属性,在f的函数体内用f.counter来引用这个变量,它也起到了全局变量的效果,可以保存之前变化的值。

方法apply()和call()(apply和call较难理解,可参看收藏的相关内容)

1、 使用这两个函数可以像调用其它对象的方法一样来调用函数。

2、 第一个参数是要调用的函数的对象,在函数体内这一参数是this的值(不太理解)

3、 其它的参数是参数值。Apply与call一样,只不过传递的参数是数组。

如:

f.call(o,1,2)相当于:

o.m = f;
o.m(1,2);
delete o.m;

又如:

Var maxNum = Math.max.apply(null,array_of_num);

编缉推荐阅读以下文章

  • javascript 学习笔记3-构造函数、类和原型
  • javascript 学习笔记1-对象和数组

上一页  1 2 3 4 5 6 

Tags:javascript 学习 笔记

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接