zoukankan      html  css  js  c++  java
  • 关于Javascript语言中this关键字(变量)的用法

    最近很多 Javascript初学者朋友总在问: Javascript 的this 关键字的用法。我在这里索性总结一下 this关键字的用法。

    this 关键字是面向对象编程语言中的一个重要概念!在JAVA,C,C#,C++等语言中,this 总是指向当前的运行对象。但是在 Javascript ,由于javascript的动态性以及词法作用域特性,this的指向在运行时才确定。

    this 关键字的用法其实比较复杂,不过你只要牢记一句话就可以:

    “this 变量:永远指向函数运行时所在的对象,而不是函数被创建时所在的对象。

    如果处在匿名函数中、或者不处于任何对象中,this 都指向宿主的根对象(在浏览器里面就是 window)”

    外,javascript中还用 call() apply() 来调用函数,再记住下面这两句话:

    如果是call()、apply()、with(),指定的this是谁,就是谁 !

    普通的函数调用,函数被谁调用,this就是谁。

    (忽然想起:ECMAScript 5 的严格模式中,严禁使用 with() 函数,并且ECMAScript 3 中并不推荐使用 with())

    上面的举例还是太过复杂,不太科学。我举一个更加直白的说明:Javascript 的 this 很花心,在哪个对象的家里,就是那个对象的。

    而 C,C++,C# 的 this 很专一,无论在哪,都属于原配!

    并且 Javascript 的函数作用域 则像出生地,出生在哪里,出生地就是哪里!和运行环境无关!(此处可参照《Javascript权威指南第六版》第8章!不过貌似只有淘宝前端翻译的纸质版本,人民币139大洋!这里有一个《Javascript权威指南第四版》,凑和着看吧。)

    大致就这样吧,有问题,请留言。

    此条目由 王子墨 发表在 前端随笔 分类目录,并贴了 标签。将固定链接加入收藏夹。

  • 相关阅读:
    03-树2 List Leaves (25 分)
    03-树1 树的同构 (25 分)
    12宏
    11.代码测试、维护
    10代码编辑、编译、审查
    9.质量保证
    02-线性结构4 Pop Sequence (25 分)
    8程序效率
    7可测性
    Linux-文件权限管理
  • 原文地址:https://www.cnblogs.com/wolm/p/3150575.html
Copyright © 2011-2022 走看看