[前端学习笔记]如何理解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,是全球最大的开源库生态系统。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值