JS8.11回调函数,闭包,小括号()运算符

本文介绍了JavaScript中的回调函数,强调其在业务中的常见应用和基础语法。接着讲解了闭包的概念,解释了如何利用闭包避免全局污染并保存临时数据。最后,探讨了小括号在自定义运算表达式和匿名函数执行中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.回调函数

  • 回调函数用在哪?
    以后做业务,80%与函数相关的语法都是回调函数.
  • 基础语法
    设计使用回调函数

在这里插入图片描述
这里tool是一个回调函数,可以通过fn内部的tool再调用tool这个函数工具.

因为这里没学多少,我也举不了更多例子.

二.闭包

  • 闭包的基本概念:具有作用于的代码块.
  • 我自己的理解是这样的:函数中有局部变量,局部变量不能被外部访问,所以不会在整个代码中产生额外负担,这样可以避免全局污染.当我们用一个函数去调用有局部变量的这个函数,这样返回值能被外部访问,我们就可以通过一个函数调用局部变量内部的变量达到目的.
  • 函数都会有自己的作用域,而函数每一次调用都会重新执行所有代码,这时局部变量里的形参和变量会重新声明,这样我们就可以通过局部作用域声明的局部变量保存临时数据.
  • 注意!函数只有在调用的时候才会执行内部的代码

这里我在学的时候感觉不能很好的表达这个知识点,不知道该列举什么例子,我还是会在做题中对闭包有更深的了解.

三.小括号

举例讲解
1

var a=20
			var b=30
			// var re=a+20
			var c=(a+20)*b  // 这里先当与 re*b  值为40  (a+20)小括号的作用是将这个表达式指向40这个结果

2

var a=20
			// var b1=a<30
			if(a<30){}//指向了一个布尔表达式的结果

3

for(var i=0;i<10;i++){
				
			}//这里()指向for的逻辑语句

4

function fn (name,age) {
				
			}
			//()里写的是形参,把形参在局部作用域隐式声明为变量

5

fn(100,200,300)
			
			指向实参对象  指向'函数的开关' call 让函数的代码块执行

6
((a+10)-5*2)
自定义运算表达式,小括号让它执行起来并指向表达式的结果

(function () {
console.log(66666)
})()// 匿名函数使用;先保存到容器() 再通过()取出来用

做两道题试试:

1
var name="marry"
			var obj1={name:"jack"}
			var obj2={name:"karen",say:function(){console.log(this.name)}};
			(obj1.say=obj2.say)()//把obj2的say方法赋给obj1的say,让obj也可以使用,这里方法的调用者是window
			//所以这里打印marry

2
var name = "The Window";
			var object = {
				name: "My Object",
				getNameFunc: function() {
					return function() {return this.name};//
                   }

			};
			console.log(object.getNameFunc()());//object调用getNameFunc的方法,再在这个方法中调用()里面的函数,函数不能调函数所以是window调用的,所以打印The window



这里再讲一下函数调用者的判断:

		fn()==>window
		xxx1.xxx2[100].xx3() ==>xxx1.xxx2[100] 取出来的对象
		arguments[0]()   ==>arguments
		xxx()()==>window  fn()
		(xx.xxx=xx2.xx2)()  ==> window
		(obj.xxx)()==>obj
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值