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

成都网站建设技术网站支付体现功能怎么做

成都网站建设技术,网站支付体现功能怎么做,餐厅网络推广方案,wordpress 压缩图片插件在JavaScript中,this是一个特殊的关键字,用于表示函数执行的上下文对象,也就是当前函数被调用时所在的对象。由于JavaScript的函数调用方式多种多样,this的指向也因此而变化。本文将介绍JavaScript中this的指向及绑定规则&#xf…

在JavaScript中,this是一个特殊的关键字,用于表示函数执行的上下文对象,也就是当前函数被调用时所在的对象。由于JavaScript的函数调用方式多种多样,this的指向也因此而变化。本文将介绍JavaScript中this的指向及绑定规则,包括默认绑定、隐式绑定、new绑定、显式绑定和箭头函数中的this规则。

1. 默认绑定

默认绑定指的是在独立函数调用的情况下,this会指向全局对象(浏览器环境下为window对象,严格模式下为undefined)。例如:

function foo() {console.log(this);
}foo(); // 在浏览器环境下输出window对象,在严格模式下输出undefined

无论是多层调用,只要是使用默认调用的方法,this的指向都会是全局对象。

2. 隐式绑定

隐式绑定是指通过某个对象进行调用的情况下,this会指向调用该函数的对象。例如:

function foo() {console.log(this);
}var obj = {name: "sss",foo: foo
};obj.foo(); // this指向obj对象

 

 

无论多少层调用,只要调用的方法是通过某个对象发起的,this都指向调用该函数的对象。

3. new绑定

在JavaScript中,函数可以当作构造函数使用,使用new关键字调用函数时,会执行以下操作:

  1. 创建一个全新的对象;
  2. 这个新对象会被执行prototype连接;
  3. 这个新对象会绑定到函数调用的this上(this的绑定在这个步骤完成);
  4. 如果函数没有返回其他对象,表达式会返回这个新对象。

例如:

function Person(name) {console.log(this);this.name = name;
}var p = new Person("aaa");
console.log(p); // p为新创建的Person对象

 

 

4. 显式绑定

如果不希望在对象内部包含函数的引用,同时又希望在某个对象上进行强制调用,可以使用callapplybind方法。

4.1 apply方法

apply方法用于绑定函数的this对象,将this绑定到传入的对象上。该方法传入的参数是一个对象和一个参数数组。

function foo(name, age, height) {console.log(this);console.log("打印参数:", name, age, height);
}var obj = {name: "zzz"
};foo.apply(obj, ["aaa", 30, 1.98]); // this指向obj对象

4.2 call方法

call方法也用于绑定函数的this对象,但是参数需要逐个传入。

function foo(name, age, height) {console.log(this);console.log("打印参数:", name, age, height);
}var obj = {name: "zzz"
};foo.call(obj, "aaa", 30, 1.98); // this指向obj对象

4.3 applycall的第一个参数

applycall的第一个参数是用来绑定this对象的,可以是任意对象,甚至是windowNumberString对象。

function foo(name, age, height) {console.log(this);
}var obj = {name: "zzz"
};foo.apply(obj, "aaa", 30, 1.98); // this指向obj对象
foo.call(window); // this指向window对象
foo.call(123); // this指向Number对象
foo.call("string"); // this指向String对象

 

 

4.4 bind方法

bind方法也用于绑定函数的this对象,但不会立即执行函数,而是返回一个新的函数。

 

http://www.bjxfkj.com.cn/article/110094.html

相关文章:

  • 鞍山手机网站建设摩洛哥网站后缀
  • 怎么二次开发wordpress宜昌怎样优化网站建设
  • 专业网站建设服务报价南宁网站开发
  • wordpress网站需要多大空间网站后台数据分析怎么做
  • 网站离线浏览器 怎么做如何管理好一个团队
  • html网站素材网网络营销产生的基础包括
  • 怎样做网站结构优化好大夫 网站开发
  • nodejs可以做网站么怎么做网站管理
  • 网站左侧悬浮导航代码wordpress 调用当前分类文章
  • 郑州专业网站制作建设建设网站怎样提要求
  • 济宁市做网站网站项目报价单
  • 网站项目规划与设计wordpress在哪修改代码
  • 90设计官方网站下载网站php源码
  • 网站名超链接怎么做reactjs 做网站
  • 网站设计科技有限公司公司起名打分最准的免费网站
  • 如何做导购网站简单网站开发
  • 住房与建设注册中心网站电商网站建设期末考试
  • 网站推广平台代理做付费推广哪个网站好
  • 个人域名 做公司网站专业网站制作公司名称
  • 网站留言模板网站建设方案书 下载
  • 如何做专业网站的线下推广音乐网站怎么做精准关键词
  • 扬州做网站谷歌广告优化
  • 网站开发工期安排衡水企业网站制作报价
  • 叫别人做网站需要注意什么问题网站建设营销解决方案
  • 中山企业网站建设方案谷歌seo服务公司
  • 可信网站认证有什么用外国网站代理
  • 网站怎样做的南京工商注册核名查询系统
  • 做么自己做一个网站网站开发需要哪些硬件
  • 用html做的美食网站深圳网站制作必选祥奔科技
  • 网站运营与管理实验报告化妆品 东莞网站建设