【JS函数】

本文详细介绍了JavaScript中函数的定义方式,包括函数声明、匿名函数和new Function构造。接着,展示了不同函数调用方式下this的指向,如普通函数、对象方法、构造函数、事件绑定和定时函数。此外,还讨论了如何通过call、apply和bind方法改变函数内部this的指向,以及它们的应用场景。这些内容对于深入理解JavaScript的函数和作用域至关重要。
摘要由CSDN通过智能技术生成

函数

函数的定义方式

  • 函数声明方式function关键字(命名函数)
  • 匿名函数
  • new Function() 参数必须是引号

new Function(‘参数1’,‘参数2’,‘函数体’);

函数的调用方式

  • 普通函数

    //this指向的window
    function fn(){
    	alter(this);
    }
    fn();
    
  • 对象的方式

    //this指向的o
    var o={
        sayHi:function(){
            alter(1);
        }
    }
    o.sayHi();
    
  • 构造函数

    //this指向的ldh这个实例对象 原型对象里面的this指向的也是ldh
    function Start(){
        alter(1);
    }
    let ldh =new Start()
    
  • 绑定事件

    //this指向的btn
    btn.onclick=function(){}
    
  • 定时函数

    //this指向的window
    setInterval(function(){},1000)
    
  • 立即执行函数

    //this指向的window
    (function(){
        alter(1);
    })();  //自动调用
    

    改变函数this的指向

  • call()

    call第一个是调用函数

    第二个改变函数内的this的指向

    call主要作用可以实现继承

    		 var o={
                name:"andy"
            }
            function fn(a,b){
                console.log(this);
                console.log(a+b);
            }
            fn.call(o,1,2);
    
  • apply()

参数必须以数组参数传递

主要应用 借助于内置对象求最大值

	   var arr=[1,2,55,78,99];
       var max=Math.max.apply(null,arr);  
       console.log(max);
  • bind()

    不会调用自身的函数,但是自身拷贝了一份,用var接收,也可以改变this的指向

     		 var o={
                name:"andy"
            }
    
            function fn(a){
                 console.log(this);
            }
            var result=fn.bind(o);//返回一个拷贝后的函数,这里不会自		动打印,apply(),call()会自动打印。
            result();
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值