[前端学习笔记]如何理解JavaScript的this关键字

因为这篇介绍中提及了其他的知识点,不是很了解,所以我也会大致介绍一下.

在这里插入图片描述
1.JavaScript中的this关键字区别于其他语言中的this,略有不同.
2.this关键词在严格模式下和非严格模式下有不同之处
3.在大多数情况下,this的值被该函数的调用方式决定(runtime bingding=运行时绑定?,以后知道了再回来).
4.ES5引入了bind()方法来设置一个函数this的值(无论该函数是如何被调用的)
5.ES5引入了箭头函数(箭头函数不提供自己的this binding)
retain:保留
enclosing lexical context:封闭词汇语境
不懂的地方我先略过了>…

ES5

1简介

参考网址:网址
ECMAScript 5.1 (或仅 ES5) 是ECMAScript(基于JavaScript的规范)标准最新修正。 与HTML5规范进程本质类似,ES5通过对现有JavaScript方法添加语句和原生ECMAScript对象做合并实现标准化。ES5还引入了一个语法的严格变种,被称为”严格模式(strict mode)”。
注意一下:

0.是一种JS规范的标准最新修正
1.对现有JS方法添加语句和原生ECMAScript对象做合并
2.引入了严格模式

疑问:
1.什么是原生ECMAScript对象?
2.严格模式和非严格模式的区别?

2严格模式的规则:

1)变量先定义在使用
2)不允许变量重名
var a=1;
function a(){}
3)不允许使用eval
4)不允许delete
5)不允许with语句
var sMessage = “hello”;
with(sMessage)
{
alert(toUpperCase());
}

3.新增方法

Array.prototype.indexOf
Array.prototype.lastIndexOf
Array.prototype.every
Array.prototype.some
Array.prototype.forEach
Array.prototype.map
Array.prototype.filter

Function.prototype.bind
bind会返回一个函数,不会立即执行
call 立即执行   (window,1,2,3)
apply 立即执行  (window,[1,2,3])

什么是prototype?

prototype 属性使您有能力向对象添加属性和方法。
简单代码:

<script type="text/javascript">

function employee(name,job,born)
{
     
     
	this.name=name;
	this.job=job;
	this.born=born;
}

var bill=new employee("Bill Gates","Engineer",1985);

employee.prototype.salary=null;
bill.salary=20000;

document.write(bill.salary);

</script>

输出结果为20000.

参考网站:网址

Node.js简介

运行在服务端的 JavaScript。Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。Node.js 的包管理器 npm,是全球最大的开源库生态系统。

猜你喜欢

转载自blog.csdn.net/weixin_43353639/article/details/111202111