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权威指南第四版》,凑和着看吧。)

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

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

  • 相关阅读:
    20171130-构建之法:现代软件工程-阅读笔记
    软件工程课程总结
    团队编程项目作业6-程序维护
    团队-象棋游戏-项目总结
    20171117-构建之法:现代软件工程-阅读笔记
    团队-象棋游戏-团队一阶段互评
    课后作业-阅读任务-阅读笔记-1
    课后作业-阅读任务-阅读提问-1
    课后作业-阅读任务-阅读提问-2
    阿里云部署node坑
  • 原文地址:https://www.cnblogs.com/wolm/p/3150575.html
Copyright © 2011-2022 走看看