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

网站建设有哪些工作需需要筹备网店铺装修设计

网站建设有哪些工作需需要筹备,网店铺装修设计,山东东营市经济怎么样,细谈电商网站外链建设的策略前言 正值春招火热招聘阶段,我近期在复习JavaScript的相关知识点,其中“this”知识点是前端面试中高频面试内容,因此整理和总结一篇相关知识点文章和大家分享! 在 JavaScript 中,this 是一个非常重要的关键字&#xff…

前言

正值春招火热招聘阶段,我近期在复习JavaScript的相关知识点,其中“this”知识点是前端面试中高频面试内容,因此整理和总结一篇相关知识点文章和大家分享!

 在 JavaScript 中,this 是一个非常重要的关键字,它在函数和对象操作中扮演着关键角色。然而,this 的指向规则并不总是直观的,这让很多初学者感到困惑。本文将通过通俗易懂的方式,结合实际代码示例,帮助你彻底理解 this 的指向规则。

一、this的指向规则

this 的指向取决于函数的调用方式,而不是函数的定义方式。虽然“谁调用它,this 就指向谁”这种说法有一定道理,但并不完全准确。以下是 this 指向的几种常见情况:

1. 全局环境中的this

在全局环境下调用函数时,this 的指向会根据是否开启严格模式而有所不同。

  • 非严格模式this 指向全局对象(浏览器中是 window,Node.js 中是 global)。

  • 严格模式this 指向 undefined

function f1() {console.log(this);
}
​
function f2() {'use strict';console.log(this);
}
​
f1(); // 非严格模式:window 或 global
f2(); // 严格模式:undefined

2. 使用 new 调用构造函数

当使用 new 关键字调用函数时,this 会被绑定到新创建的对象上。

function Person(name) {this.name = name;
}
​
const person = new Person('Alice');
console.log(person.name); // 输出:Alice
console.log(person); // 输出:{ name: 'Alice' }

在这个例子中,this 指向了通过 new 创建的 person 对象。

3. 使用 call、apply、bind 显式绑定 this

callapplybind 是 JavaScript 中用来显式改变函数内部 this 指向的方法。

  • callapply:立即执行函数,并将 this 绑定到指定对象。callapply 的区别在于参数的传递方式:call 接收多个参数,apply 接收一个数组作为参数。
const obj = { name: 'Bob' };
​
function greet() {console.log(`Hello, ${this.name}!`);
}
​
greet.call(obj); // 输出:Hello, Bob!
greet.apply(obj); // 输出:Hello, Bob!
  • bind:返回一个新函数,该函数的 this 指向被永久绑定到指定对象。
const greetBob = greet.bind(obj);
greetBob(); // 输出:Hello, Bob!

4. 通过上下文对象调用函数

当通过对象的方法调用函数时,this 指向该对象。

const student = {name: 'Alice',greet: function() {console.log(`Hello, ${this.name}!`);}
};
​
student.greet(); // 输出:Hello, Alice!

如果函数被赋值给其他变量后调用,this 的指向会丢失,恢复到全局对象。

const greet = student.greet;
greet(); // 输出:Hello, undefined!

5. 箭头函数中的this

箭头函数是 ES6 引入的一种简化语法,它的 this 指向在定义时就已经确定,始终指向外层作用域的 this。

const obj = {name: 'Alice',greet: () => {console.log(`Hello, ${this.name}!`);}
};
​
obj.greet(); // 输出:Hello, undefined!

在这个例子中,箭头函数的 this 指向全局对象,而不是obj。

二、更复杂的场景

1、事件处理中的 this

在 DOM 事件处理中,事件处理函数的 this 指向绑定事件的元素。

document.getElementById('button').addEventListener('click', function() {console.log(this); // 指向绑定事件的按钮元素
});

如果事件处理函数是一个箭头函数, this 的指向会继承自外层作用域。

const button = document.getElementById('button');
button.addEventListener('click', () => {console.log(this); // 指向全局对象(浏览器中是 window)
});

2、嵌套函数中的 this

在嵌套函数中,this 的指向可能会变得复杂。普通函数的 this 指向取决于调用方式,而箭头函数的this 指向则继承自外层作用域。

const obj = {name: 'Alice',greet: function() {const inner = () => {console.log(`Hello, ${this.name}!`);};inner();}
};
​
obj.greet(); // 输出:Hello, Alice!

在这个例子中,箭头函数 inner 的 this 继承自外层的 greet 函数的 this,指向 obj

三、总结

this 的指向规则虽然复杂,但只要掌握以下要点,就可以轻松应对:

  1. 全局环境:非严格模式下指向全局对象,严格模式下指向 undefined

  2. 构造函数:使用 new 时,this 指向新创建的对象。

  3. 显式绑定:通过 callapplybind 可以显式改变 this 的指向。

  4. 上下文对象:通过对象调用函数时,this 指向该对象。

  5. 箭头函数this 指向外层作用域。


文章转载自:

http://NRa3AfKo.tqpds.cn
http://HfyzOaxL.tqpds.cn
http://3w3Qo3lN.tqpds.cn
http://Hlfp693x.tqpds.cn
http://Q4JnAT4O.tqpds.cn
http://PkQNnuw4.tqpds.cn
http://Yafkwzjx.tqpds.cn
http://i4BuflCg.tqpds.cn
http://rdl3gFOa.tqpds.cn
http://mT0DTJRx.tqpds.cn
http://9NoPRk5d.tqpds.cn
http://EvROnOPi.tqpds.cn
http://NVXvw5rC.tqpds.cn
http://bucTXBhv.tqpds.cn
http://PXzsQw5J.tqpds.cn
http://DvG1PB8L.tqpds.cn
http://facDZBco.tqpds.cn
http://7FbURAsO.tqpds.cn
http://S0vZEFiC.tqpds.cn
http://rWtxvmsf.tqpds.cn
http://CazVffV1.tqpds.cn
http://nZ6mgdEp.tqpds.cn
http://wb3UAoAM.tqpds.cn
http://uFHq1CEj.tqpds.cn
http://cgDg3Ii8.tqpds.cn
http://twGVqPmu.tqpds.cn
http://bi3EyABl.tqpds.cn
http://F8f9YFBN.tqpds.cn
http://TENnx9as.tqpds.cn
http://6SucRaIW.tqpds.cn
http://www.dtcms.com/wzjs/767064.html

相关文章:

  • 东莞教育团购网站建设网站会员体系
  • 企业建站系统营销吧tt团队dw做网站字体 别人 电脑
  • 备案 网站名称 重复wordpress入门主题
  • 网站服务器爆满怎么挤进去学网页设计哪个培训学校好
  • 淄博优化网站排名江门免费网站建站模板
  • 怎样弄网站的导航栏app公司开发价格
  • 长春火车站位置线上视频剪辑培训班
  • 网站优化设计公司wordpress 排除置顶
  • 用html制作简单的购物网站无货源电商软件app
  • 建筑网325英文外链seo兼职在哪里找
  • 网站备案多少钱国外主流网站开发技术
  • 如何申请建设网站首页四川省住房城乡建设厅网站
  • 校园服装网站建设演示文稿博优云软件官方网站
  • 室内设计培训机构排行windows优化大师官方下载
  • 珠海策划网站建设平台wordpress英文美食主题
  • 长沙网站建设宜兴做网站哪个好
  • 广州网站优化推广公司深圳好看的网站建设哪家公司好
  • 艺术品网站模板突泉建设局三务公开网站
  • 南漳网站定制网站建设客户开发方法
  • 重庆营销型网站设计备案期间怎么做网站
  • 网站建设与推广实训小结简单的房源展示网站开发
  • 公司网站更换域名流程最简单网站设计的代码
  • 开江网站建设网站排版怎么做
  • 网站怎么做的有创意苏州市网站建设服务
  • 网站怎么运营推广肇庆高要建设局网站
  • 重庆网站建设 菠拿拿做一家直播卖货的网站
  • 做外贸一般用什么网站陇南市武都区住房和城乡建设网站
  • 简述网站建设优劣的评价标准网站开发流程图
  • 合肥高端网站建设cnfg如何网站数据备份
  • 聊城网站建设工作室wordpress分享qq插件下载