当前位置: 首页 > news >正文

本地怎样上传自己做的网站网络科技公司介绍

本地怎样上传自己做的网站,网络科技公司介绍,空间设计logo,展厅设计装饰公司本系列内容为JS全解析,为千锋教育资深前端老师独家创作 致力于为大家讲解清晰JavaScript相关知识点,含有丰富的代码案例及讲解。如果感觉对大家有帮助的话,可以【点个关注】持续追更~ this指向(掌握) this 是一个关…

在这里插入图片描述
本系列内容为JS全解析,为千锋教育资深前端老师独家创作

致力于为大家讲解清晰JavaScript相关知识点,含有丰富的代码案例及讲解。如果感觉对大家有帮助的话,可以【点个关注】持续追更~

this指向(掌握)

this 是一个关键字,是一个使用在作用域内的关键字

作用域分为全局作用域和局部作用域(私有作用域或者函数作用域)

全局作用域

全局作用域中this指向window

局部作用域

函数内的 this, 和 函数如何定义没有关系, 和 函数在哪定义也没有关系,只看函数是如何被调用的(箭头函数除外)

可分为以下场景:

普通函数中调用

普通函数中的this和全局调用一样,this指向window

语法:函数名()

<script>// 全局使用 this console.log(this) //window console.log(window) //window console.log(window === this) //true //普通函数调用 function fn() { console.log('我是全局 fn 函数') console.log(this) //window } fn() 
</script>

对象(包含数组)中调用

该函数内的 this 指向 前面的内容,也就是那个对象或者数组

语法:

对象名.函数名()*

对象名

<script> //对象函数调用 function fn() { console.log(this) //{fun: ƒ} } var obj = { fun: fn } obj.fun() obj['fun']() 
</script>

定时器处理函数中调用

定时器中的this同样也是指向window

<script> // 定时器处理函数 setTimeout(function() { console.log(this); //window }, 1000) 
</script>

事件处理程序中调用

事件处理程序中的this指向的是事件源

<!DOCTYPE html> 
<html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0">        <title>Document</title> <style> div { width: 200px; height: 200px; background-color: red; } </style> 
</head> <body> <div>hello world</div> <script> var res = document.querySelector('div') res.onclick = function() { console.log(this); //<div></div>} </script> 
</body> </html>

自执行函数中调用

●自执行函数中的this也指向window

<script> (function() { console.log(this); //window })() 
</script>

强行改变this指向

通过上面的学习大家知道,this在不同的情况指向是不同的,但是有时候需要指向一个制定的对象,这就需要改变this的指向

可以理解成不管之前指向哪里,现在我让你指向哪里你就要指向哪里

强行改变this指向的方式可以通过call、apply和bind来改变

call调用

作用:改变函数内部this的指向

语法:

函数名.call()

对象名.函数名.call(参数1,参数2,参数3…)

参数:

○第一个参数是this要指向的对象

○从第二个参数开始,依次给函数传递实参

特点: 会立即调用函数或者说立即执行

<script> function fn(a, b) { console.group('fn 函数内的 打印') console.log('this : ', this) console.log('a : ', a) console.log('b : ', b) console.groupEnd() } var obj = { name: '我是 obj 对象' } var arr = [100, 200, 300, 400, 500] // 用 call 调用 fn.call(obj, 100, 200) fn.call(arr, 1000, 2000) /* this : {name: '我是 obj 对象'} a : 100 b : 200 fn 函数内的 打印 this : (5) [100, 200, 300, 400, 500] a : 1000 b : 2000 */ 
</script>

apply调用

作用: 改变函数内部this的指向

语法:

○函数名.apply()
○对象名.函数名.apply(参数1,[参数2,参数3…])

参数:

○第一个参数是this要指向的对象

○第二参数的一个数组,要传递的实参要放到数组里面,就是有一个实参也要放到数组里面

特点: 会立即调用函数或者说立即执行

<script> function fn(a, b) { console.group('fn 函数内的 打印') console.log('this : ', this) console.log('a : ', a) console.log('b : ', b) console.groupEnd() } var obj = { name: '我是 obj 对象' } var arr = [100, 200, 300, 400, 500] // 用 apply 调用 fn.apply(obj, [100, 200]) fn.apply(arr, [1000, 2000]) /* fn 函数内的 打印 this : {name: '我是 obj 对象'} a : 100 b : 200 fn 函数内的 打印 this : (5) [100, 200, 300, 400, 500] a : 1000 b : 2000 */ 
</script>

bind调用

作用: 改变函数内部this的指向

语法:

函数名.bind()

对象名.函数名.bind(参数1,参数2,参数3...)

参数:

第一个参数是this要指向的对象

从第二个参数开始,依次给函数传递实参

特点: 函数不会立即调用,会返回一个改变this指向以后的函数,使用的时候需要调用

<script> function fn(a, b) { console.group('fn 函数内的 打印') console.log('this : ', this) console.log('a : ', a) console.log('b : ', b) console.groupEnd() } var obj = { name: '我是 obj 对象' } var arr = [100, 200, 300, 400, 500] // 用 bind 调用 // 注意: 因为是 bind, 不会把 fn 函数执行, 而是把 fn // res 接受的就是 bind 方法复制出来的 fn 函数, 和 fn var res = fn.bind(obj, 100, 200) var res1 = fn.bind(arr, 1000, 2000) res() res1() /* fn 函数内的 打印 this : {name: '我是 obj 对象'} a : 100 b : 200 fn 函数内的 打印 this : (5) [100, 200, 300, 400, 500] a : 1000 b : 2000 */ 
</script>

以上即为JS中this指向的一些基础知识点,更多技术干货、知识技巧可以关注我们!有不清楚的问题也可以在评论区交流讨论,也可以私信小千~

http://www.yayakq.cn/news/547301/

相关文章:

  • 门户网站模板免费下载企业培训体系
  • 电商网站那些功能用到静态化功能建网站要自己买服务器吗
  • cp网站开发是什么贵阳网站建设哪里好
  • 视频网站移动端投资理财网站模板
  • 网站建设什么打王思聪wordpress如何生成rss
  • 运城做网站的公司家具 东莞网站建设
  • 做网站用母版页不好么wordpress 标签云插件下载
  • 瑞安商城网站建设怎么在网站做谷歌广告
  • html论坛源码seo网站关键词排名提升
  • 做静态网站需要什么网站建设合同性质
  • 网上书店网站建设实训报告总结许昌做网站优化
  • 顺德网站制作案例价位有免费做网站的吗
  • wordpress500错误解决公司网站怎么做优化
  • 怒江商城网站建设营站快车代理平台
  • 做美剧盗版网站建好的网站能修改吗
  • 网站建设设计工具做网站有用没
  • 移动网站建设哪家便宜网站建设的ppt
  • 淘宝上买的网站模板怎么建设网站一整套vi设计
  • 南通网站建设祥云免费在线建站
  • 昆明城乡和住房建设局网站企业网站架构
  • 镇江企业网站设计开发价格一家专门做爆品印刷的网站
  • 元典科技网站建设建设企业网站的意义
  • wordpress 3.8.1如何做网站性能优化
  • 陶瓷网站制作权重高的网站有哪些
  • 网站建设模式怎么写旅游网站项目评估
  • 青海省建设厅网站地址dedecms制作网站地图
  • 石家庄网站建设找哪家好免费com域名注册
  • 深圳团购网站设计价格创新设计多功能水杯
  • 自己做网站需要下载什么软件广西建设网官网办事大厅桂建云
  • 青岛市城市建设局网站wordpress百度推送代码