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

怎么做消费一卡通网站百度网站优化

怎么做消费一卡通网站,百度网站优化,如何做类似千图网的网站,平面设计类网站有哪些文章目录 一、this 绑定机制1、原理分析1.1、动态绑定特性1.2、绑定规则优先级1.3、执行上下文 2、绑定类型详解2.1、默认绑定(独立函数调用)2.2、 隐式绑定(方法调用)2.3、显式绑定(call/apply/bind)2.4、…

文章目录

  • 一、this 绑定机制
    • 1、原理分析
      • 1.1、动态绑定特性
      • 1.2、绑定规则优先级
      • 1.3、执行上下文
    • 2、绑定类型详解
      • 2.1、默认绑定(独立函数调用)
      • 2.2、 隐式绑定(方法调用)
      • 2.3、显式绑定(call/apply/bind)
      • 2.4、new 绑定(构造函数)
      • 2.5、箭头函数(词法绑定)

一、this 绑定机制

1、原理分析

this 是 JavaScript 中最容易混淆的概念之一,它的绑定机制决定了函数执行时的上下文。理解 this 的工作原理对于编写可靠的 JavaScript 代码至关重要。

1.1、动态绑定特性

this 的值不是在函数定义时确定的,而是在函数被调用时动态绑定的。这与大多数编程语言中的 thisself 概念有显著区别。

1.2、绑定规则优先级

JavaScript 按照以下优先级顺序确定 this 的绑定:

  1. new 绑定(构造函数调用)
  2. 显式绑定(call/apply/bind)
  3. 隐式绑定(方法调用)
  4. 默认绑定(普通函数调用)

1.3、执行上下文

this 实际上是执行上下文的一个属性,每次函数调用都会创建一个新的执行上下文,其中的 this 值由调用方式决定。

2、绑定类型详解

2.1、默认绑定(独立函数调用)

  • 非严格模式下指向全局对象(浏览器中为 window,Node.js 中为 global
  • 严格模式下为 undefined
function foo() {console.log(this); 
}foo(); // 浏览器中输出 window(非严格模式)

2.2、 隐式绑定(方法调用)

  • 函数作为对象方法调用时,this 指向调用该方法的对象
  • 存在隐式丢失问题
const obj = {name: 'Alice',greet: function() {console.log(`Hello, ${this.name}`);}
};obj.greet(); // "Hello, Alice"(this 指向 obj)// 隐式丢失示例
const greetFn = obj.greet;
greetFn(); // "Hello, undefined"(this 指向全局)

2.3、显式绑定(call/apply/bind)

  • 直接指定 this 的值
  • bind 创建永久绑定,call/apply 立即执行
function introduce(lang) {console.log(`${this.name} codes in ${lang}`);
}const dev = { name: 'Bob' };// call(参数逐个传递)
introduce.call(dev, 'JavaScript'); // apply(参数为数组)
introduce.apply(dev, ['Python']); // bind(创建新函数)
const boundFn = introduce.bind(dev, 'Java');
boundFn();

2.4、new 绑定(构造函数)

  • this 指向新创建的对象实例
  • 自动执行以下步骤:
    1. 创建新对象
    2. this 绑定到新对象
    3. 执行构造函数代码
    4. 返回新对象(除非显式返回其他对象)
function Person(name) {this.name = name;
}const p = new Person('Charlie');
console.log(p.name); // "Charlie"

2.5、箭头函数(词法绑定)

  • 继承定义时的外层 this
  • 无法通过 call/apply/bind 修改
  • 没有自己的 thisargumentssupernew.target
const outer = {name: 'Dave',inner: () => {console.log(this.name); // 继承定义时的 this},properInner: function() {setTimeout(() => {console.log(this.name); // 继承 properInner 的 this}, 100);}
};
http://www.dtcms.com/wzjs/422767.html

相关文章:

  • 装饰公司网站建站网络推广入门教程
  • 想找人做网站 要怎么选择深圳全网营销型网站
  • 建设企业网站需注意什么电商广告
  • 朝外大街网站建设精准客源
  • WordPress外链网盘关键词优化公司哪家好
  • 西城上海网站建设媒体:北京不再公布各区疫情数据
  • 上海嘉定网站市场调研报告范文2000
  • 衡水网站建设衡水网站建设山东关键词网络推广
  • 做坏事小视频网站seo网站优化多少钱
  • 做网站月度总结关键词调整排名软件
  • 沧州网站改版优化公司推广
  • 装修公司网站建设方案石家庄网络推广
  • 兴义市网站建设分销平台
  • 网站建设 软文自媒体135网站免费下载安装
  • 怎样做家普网站东莞网站自动化推广
  • 中石油第六建设公司网站百度公司电话
  • ecshop 获取网站域名seo快排软件
  • dedecms做网站怎么查看谷歌搜索引擎入口2023
  • 企业宣传策划公司成都关键词优化报价
  • 网站管理助手数据库吸引人的营销标题
  • 班级网站建设规划书网站提交入口
  • 介绍湛江网站国际网站平台有哪些
  • 商丘哪里做网站微博推广价格表
  • 多网站后台问题输入关键词进行搜索
  • 网站主页设计要点百度指数怎么看
  • wordpress静态页制作青岛百度快速排名优化
  • 外包做网站赚钱么杭州seo专员
  • 信息中心完成网站建设360搜索引擎地址
  • 西安网站建设独酌seo技术培训价格表
  • 成都专做婚介网站的公司免费营销软件网站