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

学做网站需要哪几本书关键词竞价排名是什么意思

学做网站需要哪几本书,关键词竞价排名是什么意思,上海网站建设的,北京知名大公司有哪些因为日常工作中经常使用到this,而且在JavaScript中this的指向问题也很容易让人混淆一部分知识。 这段时间翻阅了一些书籍也查阅了网上一些资料然后结合自己的经验,为了能让自己更好的理解this,进而总结一篇文章。 this 是什么 this是 JavaScr…

因为日常工作中经常使用到this,而且在JavaScript中this的指向问题也很容易让人混淆一部分知识。
这段时间翻阅了一些书籍也查阅了网上一些资料然后结合自己的经验,为了能让自己更好的理解this,进而总结一篇文章。

this 是什么

this是 JavaScript 语言的一个关键字。它是函数运行时,在函数体内部自动生成的一个对象,只能在函数体内部使用。
实际是在函数被调用时才发生的绑定,也就是说this具体指向什么,取决于你是怎么调用的函数。

this 指向的四种情况

这四种情况基本涵盖了JavaScript中常见的this指向问题

1. 全局的函数调用,this指向window

var a = 1;
function fn() {console.log(this.a);
}
fn();  // 1

这种 情况下的this其实就是window对象,这个很好理解。
但是还有一种情况,就是匿名函数的this也会指向window

var a= 'window';
var obj={a: 'object'}
obj.fn=function(){console.log(this.a);//Object+function(){console.log(this.a)//window}()
}
obj.fn()

匿名函数的执行环境具有全局性,因此它的this对象通常指向windows。
如果对此有疑惑,可以看知乎上的答案:知乎 - 匿名函数的this指向为什么是window?

2. 作为对象方法的调用,this指向该对象

var a ='window'
var obj={a: 'object',fn: function(){console.log(this.a);}
}obj.fn(); // object

当函数作为某个对象的方法调用时,this就指这个函数所在的对象。

3. 作为构造函数调用,this指向实例

function fn() {this.x = 1;
}
var obj = new fn();
console.log(obj.x) // 1

构造函数中的this,在通过new之后会生成一个新对象,this就指这个新对象。
new有疑问的话,可以看 冴羽的博客 JavaScript深入之new的模拟实现

4. 使用call/apply/bind调用, this指向第一个参数

var obj1={a: 'boj1'
}
var obj2={a: 'obj2'
}
var obj3={a: 'obj3'
}
function fn(){console.log(this.a);
}
// apply
fn.apply(obj1);// 'obj1'
// call
fn.call(obj2);// 'obj2'
// bind
var fnBind= fn.bind(obj3);
fnBind();// 'obj3'

call/ apply / bind 都有一个共同的特点,就是改变this的指向,使用这种方法可以把别人的方法拿过来用到自己身上。

第一个参数为 null 的时候,视为指向 window.

var a='window'
var obj={a: 'boj',fn: function (){console.log(this.a);}
}
obj.fn.call(null);// 'window'

在这里如果是obj.fn()调用的fn()方法,this应该指向obj没错。
但是因为call(null)的存在,改变了指向,所以this指向了window

深入理解

正因为比较难理解,所以this指向也是面试时最容易遇到的问题,比如下面这道我曾遇到的一个面试题:

var length = 10;
function fn(){console.log(this.length);
}
var obj = {length: 5,method: function(fn){fn();arguments[0]();}
};
obj.method(fn, 1);

在这道题里,不仅考察了对this熟悉程度,还考察了函数的传参形式、作用域、以及arguments这种特殊的数组的理解。
只有真正理解了这些才能正确的判断this究竟指向了谁。
所以,只有对JavaScript中的各项知识点深入理解,才会对this的概念越加清晰。

参考:
阮一峰 - Javascript 的 this 用法
前端开发博客 - 深入理解JavaScript this

文章仅日常学习工作所得,欢迎大家访问我的blog。

http://www.lbrq.cn/news/2511487.html

相关文章:

  • 招聘网站开发站长工具一区
  • 做鸡蛋期货看什么网站市场监督管理局官网入口
  • 开发中英文切换网站如何做网站关键词优化推广哪家快
  • 仲恺建设局网站搜索指数
  • 网站建设技术路线山西网页制作
  • 做一个招聘信息的网站 用什么做网站的软件网络推广外包业务怎么样
  • 电子商务的就业方向是什么天机seo
  • 3g版网站制作网站策划是什么
  • 免费网站怎么做排名电商运营培训大概多少学费
  • inititle 网站建设常用的网络推广的方法有哪些
  • delphi10.2 网站开发广告软文营销平台
  • 邮箱检测网站qq群推广网站免费
  • python整合网站开发技术今日nba战况
  • 公众号如何推广宣传百中搜优化软件
  • 重庆外贸网站建设公司百度官方营销推广平台加载中
  • 网上注册网站要钱吗沈阳今日新闻头条
  • 北京做网站男生工资百度开户怎么开
  • 网站制作网站深圳网站建设运营
  • 南阳做网站多少费用seo教程百度网盘
  • 个人网站设计及实现网站外包
  • 贵阳美容网站建设seo优化培训
  • 浦城 做网站西安百度推广网站建设
  • 网站关键词怎么做排名靠前下载百度到桌面
  • 机票网站开发知乎百度热搜榜排名今日
  • 网站导航条线上推广公司
  • 微信公众号怎么上架商品seo研究中心超逸seo
  • 苗木企业网站源码公司在百度怎么推广
  • 微网站建设百度云搜索引擎官网
  • 北京住房城乡建设部网站网络推广方式有哪些
  • 客服在家做网站郑州厉害的seo顾问公司
  • 基于 xlsx-js-style 的 Excel 导出工具实现导出excel
  • linux_centos7安装jdk8_采用jdk安装包安装
  • 水稻调控组全景的综合绘制与建模揭示了复杂性状背后的调控架构
  • MySQL 全详解:从入门到精通的实战指南
  • 网络基础19:OSPF多区域实验
  • 开发者说|RoboTransfer:几何一致视频世界模型,突破机器人操作泛化边界