javascript实现方法调用与方法触发小结

 更新时间:2016年03月26日 15:45:57   投稿:hebedich  
这篇文章主要介绍了javascript实现方法调用与方法触发小结的相关资料,需要的朋友可以参考下

在js中,this关键字是一个比较让人有意思的东西,但是它的指向经常让初学者摸不着头脑。

  其实要理解这个关键字,需要理清两个问题——“方法的调用和方法的触发”

  下面先看一段代码

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>function</title>
<script>
function showThis(){
  console.info(this);
}
  
function Test1(){
  this.f=showThis;
}
function Test2(){
  this.f=function(){
    showThis();
  }
}

showThis();//window
new Test1().f();//Test1  
new Test2().f();//window
</script>
</head>
<body>
</body>
</html> 

  20行打印出window对象,这个很容易理解,但是21行打印出Test1的实例对象,而22行却打印出window对象。查看Test1和Test2的构造,发现方法f最终都执行了showThis方法。但是showThis中的this指向却不同。这是因为Test1中的f方法直接指向showThis,new Test1().f()是以Test1 的实例直接调用showThis方法,调用者是Test1的实例。而new Test2().f()是在Test2的实例方法f中触发window对象的showThis方法,其中的this就是指向其调用者window而不是触发者Test2的实例。

  至此可以发现。this指向的是调用者,而触发者只是推进调用者执行指定方法而已。

相关文章

  • 表单元素与非表单元素刷新区别详细解析

    表单元素与非表单元素刷新区别详细解析

    表单元素如果用js赋值刷新后,记录是js赋值后的值而不是初始值;非表单元素如果用js赋值刷新后,记录的是初始值
    2013-11-11
  • location.href用法总结(最主要的)

    location.href用法总结(最主要的)

    location.href在使用中很是频繁,接下来为大家详细介绍下location.href主要的使用方法有哪些,感兴趣的朋友可以参考下
    2013-12-12
  • 浅谈JavaScript数组简介

    浅谈JavaScript数组简介

    本文主要是给大家简单介绍了Array的相关基础知识,到这里也算是能对Array有更全面的理解了,希望大家能够喜欢,后续我们将继续介绍关于array的内容。
    2021-11-11
  • JavaScript 变量命名规则

    JavaScript 变量命名规则

    学习js的朋友一定要知道和注意,其实每种语言都有它的命名规则。
    2009-09-09
  • JavaScript面向对象编程入门教程

    JavaScript面向对象编程入门教程

    这篇文章主要介绍了JavaScript面向对象编程的相关概念,例如类、对象、属性、方法等面向对象的术语,并以实例讲解各种术语的使用,非常好的一篇面向对象入门教程,其它语言也可以参考哦
    2014-04-04
  • JavaScript DOM学习第四章 getElementByTagNames

    JavaScript DOM学习第四章 getElementByTagNames

    HTML有一些相关有不同tag名字的相关元素,比如H1-H6或者input,select和TEXTAREA。getElementByTagName只能取得那些有相同tag名称的元素,所以你不能用他来取得所有的标题或者整个表单内容。
    2010-02-02
  • 详解javascript void(0)

    详解javascript void(0)

    这篇文章主要介绍了javascript void关键字的相关资料,文中讲解非常细致,帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-07-07
  • JavaScript数据结构与算法之集合(Set)

    JavaScript数据结构与算法之集合(Set)

    JavaScript集合(set) 可以使用集合对象 Map、Set 和WeakMap 存储值和对象。通过这些对象,可以使用键或值而非索引来轻松添加和检索成员。
    2016-01-01
  • 浅析JavaScript中的typeof运算符

    浅析JavaScript中的typeof运算符

    这篇文章主要是对JavaScript中的typeof运算符进行了详细的分析介绍,需要的朋友可以过来参考下,希望对大家有所帮助
    2013-11-11
  • JavaScript数值类型知识汇总

    JavaScript数值类型知识汇总

    这篇文章主要给大家介绍了关于JavaScript数值类型知识汇总的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用JavaScript具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-11-11

最新评论