JS - 函数定义和调用形式

本文详细介绍了JavaScript中函数的各种定义方式及特性,包括函数声明、表达式、构造函数实例化等,并探讨了函数的三要素:函数名、参数和返回值。此外,还讲解了匿名函数的应用形式、函数的name和length属性以及arguments对象的使用方法。

函数定义形式

函数定义方式

  • 函数声明
     function max(a, b) {
            return a > b ? a : b;
        }
    
  • 函数表达式
       var max = function (a, b) {
             return a > b ? a : b;
         };
    
  • Function 构造函数实例化
    var max = new Function("a", "b", "return a > b ? a : b;");
    

函数定义三要素

  1. 函数名:alert、parseInt
  2. 函数的参数:传递给函数名的值
  3. 函数的返回值:函数执行的返回结果

匿名函数

  • 立即执行形式
//匿名函数立即执行是可以的
 (function(){
   console.log("立即执行");
 })();
  • 函数表达式是常见的匿名函数应用形式
 var min = function(a,b){
    return a<b?a:b;
 }

name属性

  • 用于返回函数实例的名称
var f1 = function() {};
console.log(f1.name);  //f1
  • 若为匿名函数,返回anonymous
var f1 = new Function();
console.log(f1.name);  //anonymous

length属性

  • 指明函数定义的形参个数
function fun1(){}
console.log(fun1.length); //0

function fun2(a,b){}
console.log(fun2.length);  //2

arguments 对象

arguments

  • 代表传入函数的实参
  • 是函数中的局部变量 (内部变量)
  • 只有调用函数时才可用
  • 是一个类数组对象
  • 打印实参个数
console.log(arguments.length); 
  • 打印实参数组的所有属性和方法
console.dir(arguments);

类数组对象

  • 与数组一样具有 length 和 index 属性
  • 本质是 Object

双向绑定

function fun(a, b, c) {
    console.log(a, b, c);
    console.dir(arguments);
    //双向绑定
    console.log(a === arguments[0]); //true
 }
   var obj = { x: 1, y: 2 };
   fun(1, obj);

call/apply/bind方法

call() 方法

  • 语法 :bird.fly.call(me,7,8)
  • 作用:调用函数,并且改变函数执行的this指向

apply() 方法

  • 语法:bird.fly.apply(me,[11,12]);
  • 作用:调用函数,并且改变函数执行的this指向

bind() 方法

  • 语法foo.bind(this)()
  • 作用:bind 不会调用函数
    var fee = foo.bind(this); 
    setTimeout(fee,2000);
    
foo.bind(this)(); //立即执行函数

函数调用形式

  • 作为函数直接调用
function foo(){ }
var func = function(){ }
foo( );
func( );
(function () { } ) ( ) ; 
  • 作为方法调用
function f ( ) {
	this.method = function ( ) { };
}
var o = {
	method : function ( ) { }  
}
  • 通过call( )和apply( ) 间接调用
  • 作为构造函数调用
var p1 = new Person ( " Jack" );
p1.sayHi( ); 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值