看到一篇文章说: 正确掌握了 JavaScript 中的 this 关键字,才算迈入了 JavaScript 这门语言的门槛。
今天的博客 就写一写 对this的初步认识
由于其运行期绑定的特性,JavaScript 中的 this 含义要丰富得多,它可以是全局对象、当前对象或者任意对象,这完全取决于函数的调用方式。JavaScript 中函数的调用有以下几种方式:作为对象方法调用,作为函数调用,作为构造函数调用,和使用 apply 或 call 调用
在函数调用模式中 this指向Window
函数也可以直接被调用,此时 this 绑定到全局对象。在浏览器中,window 就是该全局对象。
function fn() { console.log(this) } fn()
在调用的模式的时候,this指向方法所对应的对象
方法在 JavaScript 中,函数也是对象,因此函数可以作为一个对象的属性,此时该函数被称为该对象的方法,
在使用这种调用方式时,this 被自然绑定到该对象。
function test(){ alert(this.M); } var o = {}; o.M= 1; o.m = test; o.m(); // 1
在构造函数模式的时候,this指向新生成的实例
所谓构造函数就是通过这个函数生成新的对象(object)this指向这个对象
function test(){ this.x = 1; } var o = new test(); alert(o.x); // 1
this 在apply/call调用模式的时候,this指向其第一个参数
pply()是函数对象的一个方法,它的作用是改变函数的调用对象,
它的第一个参数就表示改变后的调用这个函数的对象。因此,this指的就是这第一个参数。
var x = 0; function test(){ alert(this.x); } var o={}; o.x = 1; o.m = test; o.m.apply();
相关推荐
adapted for JavaScript. This is not a style guide. It's a guide to producing [readable, reusable, and refactorable](https://github.com/ryanmcdermott/3rs-of-software-architecture) software in ...
Learn how to program JavaScript while creating interactive audio applications with JavaScript for Sound Artists: Learn to Code With the Web Audio API! William Turner and Steve Leonard showcase the ...
JavaScript Code Improver中文版JavaScript Code Improver中文版JavaScript Code Improver中文版JavaScript Code Improver中文版
"JavaScript Source Code 3000"这个压缩包很可能包含了3000个不同的JavaScript代码示例,涵盖了各种功能和应用场景。 在JavaScript的世界里,你可以学到以下关键知识点: 1. **基础语法**:JavaScript是一种解释型...
"Code for Beginning JavaScript"很可能是包含初级JavaScript编程示例的文件,适合初学者。这样的文件可能涵盖基本的DOM操作、事件处理、函数定义和调用、对象创建等。DOM(Document Object Model)是HTML和XML文档...
Written for intermediate-to-advanced programmers, this book jumps right into the technical details to help you clean up your code and become a more sophisticated JavaScript developer.
This application note provides code examples for the following important operations that are involved in booting a bare-metal system: • Initializing exceptions. • Initializing registers. • ...
一个js代码整理工具。如:<script language="JavaScript">var i=0,s="",k=0;function foo(){for(j=0;... } } } </script> 详细介绍:http://jcay.com/javascript-code-improver.html<br>
This concise 150 page book will help you create and use practical code analysis tools utilizing the new features of Microsoft’s Roslyn compiler to understand the health of your code and identify ...
**JavaScript Projects for Kids** 是一本面向儿童的编程书籍,由Syed Omar Faruk Towaha撰写。这本书以英文呈现,旨在引导孩子们通过实践项目学习JavaScript这一流行的编程语言。JavaScript是一种广泛应用于网页...
looking for the quantum leap toward mastering the JavaScript language, or just want to become a better programmer in general, then this book is ideal for you. This guide is aimed at programmers, ...
JavaScript Code Improver JS代码格式化工具JavaScript Code Improver JS代码格式化工具JavaScript Code Improver JS代码格式化工具JavaScript Code Improver JS代码格式化工具
Visual Studio Code tips and tricks for JavaScript developers
**Visual Studio Code for MacOS** 是一款专为苹果操作系统设计的强大源代码编辑器,由微软公司开发。这款编辑器以其跨平台性、丰富的功能集和高度可定制性在开发者社区中广受欢迎。对于Mac用户而言,它提供了一流的...
总结来说,ArcGIS API for JavaScript 4.9为Web GIS开发提供了强大且灵活的工具集,通过深入学习和实践,开发者能够构建出功能丰富、互动性强的地理信息系统应用。无论是简单的地图展示,还是复杂的地理分析任务,...
Who is this book for? Who should probably back away from this book? If you can answer “yes” to all of these: We’ll help you learn how to write JavaScript code that makes web pages do all kinds of ...
学习JavaScript过程中的代码,方便以后敲代码的时候,可以直接使用