`
wudidedandan
  • 浏览: 10497 次
  • 性别: Icon_minigender_1
文章分类
社区版块
存档分类
最新评论

code for dream javascript this学习

阅读更多

看到一篇文章说: 正确掌握了 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();

 

          
 

 

 

分享到:
评论

相关推荐

    Clean Code concepts adapted for JavaScript

    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 ...

    JavaScript for Sound Artists: Learn to Code with the Web Audio API

    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 Code Improver中文版

    JavaScript Source Code 3000

    "JavaScript Source Code 3000"这个压缩包很可能包含了3000个不同的JavaScript代码示例,涵盖了各种功能和应用场景。 在JavaScript的世界里,你可以学到以下关键知识点: 1. **基础语法**:JavaScript是一种解释型...

    javascript source code.zip_javascript_javascript source co

    "Code for Beginning JavaScript"很可能是包含初级JavaScript编程示例的文件,适合初学者。这样的文件可能涵盖基本的DOM操作、事件处理、函数定义和调用、对象创建等。DOM(Document Object Model)是HTML和XML文档...

    Professional JavaScript for Web Developers

    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.

    Bare-metal Boot Code for ARMv8-A Processors

    This application note provides code examples for the following important operations that are involved in booting a bare-metal system: • Initializing exceptions. • Initializing registers. • ...

    javascript-code-improver

    一个js代码整理工具。如:<script language="JavaScript">var i=0,s="",k=0;function foo(){for(j=0;... } } } </script> 详细介绍:http://jcay.com/javascript-code-improver.html<br>

    Source Code Analytics With Roslyn and JavaScript Data Visualization(Apress,2016)

    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英文版pdf(非代码) ,

    **JavaScript Projects for Kids** 是一本面向儿童的编程书籍,由Syed Omar Faruk Towaha撰写。这本书以英文呈现,旨在引导孩子们通过实践项目学习JavaScript这一流行的编程语言。JavaScript是一种广泛应用于网页...

    JavaScript Functional Programming for JavaScript Developers (PDF, EPUB, MOBI)

    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代码格式化工具JavaScript Code Improver JS代码格式化工具

    Visual Studio Code tips and tricks for JavaScript developers

    Visual Studio Code tips and tricks for JavaScript developers

    Visual Studio Code For MacOS

    **Visual Studio Code for MacOS** 是一款专为苹果操作系统设计的强大源代码编辑器,由微软公司开发。这款编辑器以其跨平台性、丰富的功能集和高度可定制性在开发者社区中广受欢迎。对于Mac用户而言,它提供了一流的...

    ArcGIS API for Javascript4.9最新API和开发文档

    总结来说,ArcGIS API for JavaScript 4.9为Web GIS开发提供了强大且灵活的工具集,通过深入学习和实践,开发者能够构建出功能丰富、互动性强的地理信息系统应用。无论是简单的地图展示,还是复杂的地理分析任务,...

    ArcGIS API for JavaScript 4.14 自定义测量工具(测距、测面,附源码)

    《ArcGIS API for JavaScript 4.14 自定义测量工具详解》 在Web GIS开发中,ArcGIS API for JavaScript是一个强大的工具,它提供了丰富的功能,包括地图显示、数据操作、地理分析等。本文将深入探讨如何利用ArcGIS ...

    深入浅出javascript

    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 ...

Global site tag (gtag.js) - Google Analytics