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

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

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

  • 相关阅读:
    XMIND
    android studio 更新 Gradle错误解决方法
    解决下载Android Build-tools 19.1.0失败
    Android Studio怎么删除项目
    android studio 更改背景和设置字体大小
    IOS开发常用技术网站
    Gitbook安装
    深入解析AsyncTask(转)
    Android中Bitmap和Drawable(转)
    提高Android在eclipse下的编译速度
  • 原文地址:https://www.cnblogs.com/wolm/p/3150575.html
Copyright © 2011-2022 走看看