[Javascript] this in Function Calls
2024-08-27 11:36:19
In most cases, the value of a function's this
argument is determined by how the function is called. This lesson explains what this
refers to when we call plain function. Marius points out how functions behave differently in strict and non-strict mode. "use strict"
mode defaults this
to undefined and prevents us from assigning values to undefined. We must call functions as a constructor to assign their this
value correctly.
"use strict"; console.log(this === global) // false, in REPL this === global
console.log(this === module.exports) // true function Person(firstName, lastName) {
console.log(this === global) // without 'use strict', true; with strict mode, false
console.log(this === undefined) //without 'use strict', false; with strict mode, true
} Person()
Inside a function,
- strict mode, 'this' is undefined
- without strict mode, 'this' is global
"use strict"; console.log(this === global) // false, in REPL this === global
console.log(this === module.exports) // true function Person(firstName, lastName) {
console.log(this === global) // without 'use strict', true; with strict mode, false
console.log(this === undefined) //without 'use strict', false; with strict mode, true
this.firstName = firstName;
this.lastName = lastName;
} const person = new Person("Jane", "Doe");
console.log(person);
console.log(global.firstName); //undefined
console.log(global.lastName); //undefined
最新文章
- 【翻译】如何给tomcat配置memcached-session-manager
- TOMCAT的安装部署配置(配图解)
- 几种连接数据库的OLEDB驱动程序
- C/C++ 快速排序 quickSort
- iOS开发常用国外网站清单
- ASP.NET中的MD5加密
- 最终结算“Git Windowsclient保存username与password”问题
- AngularJS2基本构造
- cocoa pods 命令不执行command not found
- 堆排序—Java
- 【48】java抽象类和接口的定义和区别
- 爬虫_电影天堂 热映电影(xpath)
- Java基础(认识Java)
- BootStrap学习从现在开始
- java.io.InvalidClassException
- IO测试工具之fio详解(转)
- Andriod(3)——Understanding Android Resources
- 关于目前自己iOS项目使用的插件
- 43、Java动态代理一——动态类Proxy的使用
- asp.net core microservices 架构之 分布式自动计算(一)