|
Javascript this关键字一般来说大家并不陌生,但是如何更好的用好Javascript this关键字却需要我们仔细思考,希望本文对广大程序员有所帮助。
摘要
本系列博文主要谈一些在 Javascript 使用中经常会混淆的高级应用,包括: prototype, closure, scope, this关键字. 对于一个需要提高自己Javascript水平的程序员,这些都是必须要掌握的.
本节主要介绍this关键字和scope.
Contents
摘要引入this关键字关于apply和callscope详述一些说明结论后记参考资料本文的源码
引入
作为一个程序员, 你可能早已经习惯于面向对象语言中指代当前对象的引用(或者指针), 如的c++中的this或者 Python 中的self,当然具有OO属性( Javascript 其实更多的是一种所谓的函数式语言)的 Javascript 同样, 它也具有引用当前属性的对象的指针(或者引用), 也就是this关键字.
为了理解this关键字,如果你只想记住一句话,那应该是 this关键字总是指向当前函数的所有者对象(执行空间), 至于这句话如何理解, 可以参见下面的详细说明.
那么什么是 scope 呢?
wikipedia 中的解释是 In computer programming, scope is an enclosing context where values and expressions are associated. 中文即是所谓的 作用域, 它指明的是一个数值或者表达式所关联的上下文(能够被引用的执行空间).
scope 与this有什么关系呢? 如果从上面的定义来看, this指向的总是当前引用此函数的对象,而当你要判断当前引用的对象时, 这时你就得弄清楚当前函数所在的 scope. 具体可见下面的分析.
Javascript this关键字
请看下面的几个例子.
一个 Python 的例子:
class Person(object):
"""a person class
"""
def __init__(self, name):
self.name = name #这里的self指向的是实例化后的对象,如下面中的zhutao
def get_name(self):
return self.name
zhutao = Person("zhutao")
print zhutao.name
it知识库:javascript必知必会之this关键字及scope,转载需保留来源!
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。