常用子类function

函数:

1.创建

法1:函数字面量

var say=function(){ }

法2:函数声明

function  say(){ }

法3:匿名函数

 function(){ }
 (function(){ })()

  • 调用函数方法只有一种:在被创建时立即调用

法4:对象中的函数声明

var obj={ name:'lisi', say:function(){} } obj.say();

  • js解析器优先解析函数声明,然后解析使用var操作符声明的变量,但是不赋值(遇到=赋值)函数内部代码在函数调用时执行
  • eg:

var a=10; var a=20; console.log(a);

js中没有重载概念,只要函数名相同,即为重写

  • eg:

function say(a){ console.log(a,b); } function say(a,b){ console.log(a,b); } say(10);

火狐浏览器控制台输出结果为:

javascript函数怎么创建 javascript创建函数的方法_原型对象

2.函数的调用方式

  • ①函数名()
  • ②new 函数名()         //区别,new  会新开辟内存空间

3.函数的参数

  • 形式参数(形参):当前函数需要的参数
  • 实际参数(实参):实际调用方法时传递的参数

形参个数和实参个数可以不一致,并且数据类型不限

eg:

function say(形式参数){} var say=function(形参){}say(实际参数);

4.函数的内部属性

arguments:用来保存实参对象  --->以类数组对象的形式保存

  • length:实参个数(当前类数组对象的长度)
  • callee:从函数内部指向当前拥有arguments的函数

this:this指向函数赖以生存的环境对象

  • 函数this值什么时候确定?
  • 在拥有当前this的函数被调用时候确定
  • 如何确定?(this指向谁?)
  • 当前拥有this的函数被谁调用,this就指向谁

5.作为值的函数和作为返回值的函数

值:

  • eg:  
  • 把函数当成一个值给了handler,调用handler就相当于调用say();

function say(){} var handler=say; handler();

返回值:

  • eg:return,返回了一个函数,即函数作为了返回值

function say(){ return function(){} }

6.函数的属性

length:

  • say.length:返回当前函数的形参的个数

prototype:原型对象

  • 用来储存非静态方法/公有属性(方法)
  • 每一个函数都有一个原型对象(prototype)
  • 每一个原型对象都有一个构造者(constructor)

call():函数的调用方式,可以指定函数内部的this

  • 函数名 . call ( this(指定函数内部想要指向的this值) , 实际参数列表 )

say.call(this,1,2,3,4);

apply():函数的调用方式,可以指定函数内部的this

  • 函数名.apply(this, [ 实际参数列表 ] );

say.apply(this,[1,2,3,4]);