用Javascript绘制这个关键字
Javascript是一种脚本语言支持等功能规划,关闭功能先进,起初看起来会觉得很容易上手inheritance.javascript原型。但是随着应用程序的深入,您会发现Javascript实际上很难掌握。一些基本的概念是无法想象的。这个关键词在Javascript是一个概念,容易混淆,并在不同的情况下,这会体现出不同的对象。有一种观点认为,只有这个关键词在Javascript中正确掌握Javascript语言的门槛。在主流的面向对象语言(如java,C #,等等),它的意思是明确具体的,即指向当前对象。一般来说,势必会在编译期,这势必在Javascript的运行,这就是为什么这个关键词在Javascript中具有多重含义的根本原因。不是因为在运行期间,其结合的特点,这在Javascript可以全局对象,对象或任何对象,这完全取决于调用函数的方式。有调用Javascript的函数的几种方式:作为对象的方法调用,因为函数调用,因为构造函数调用,并调用的应用或致电。俗话说,话不为表和表不好,如图一样好。为了更好的理解这是指着什么Javascript呢以下是图片说明。
我把它叫做Javascript这个决策树(在一个非严格的模型中):
var点{ { {
X:0,
y:0,
MoveTo:函数(x,y){
这个;
这个;
}
};
解释:point.moveto / /决策树(1,1)称新的不是一个函数,不进入决策,
/ /点(。)之前调用对象调用to.moveto,即点
Point.moveTo(1,1); / /这是绑定到当前对象,即重点对象
确定point.moveto过程()函数在Javascript这个决策树是这样的:
1) is the point.moveTo function call invoked with new这显然不是,进入分支,也就是,用点()调用的函数吗;
2)的point.moveto调用函数的点(。),即进入分支,即在这里点的point.moveto。前一个对象点;
分析图是这个图形point.moveto功能指的是如下图所示:
例如,看看下面的代码:
函数函数(x){
这个;
}
函数(5);这是一个全局对象窗口,x是一个全局变量。
决策树分析:函数()函数是用新调用的吗是否可以用圆点输入函数()函数不管是否,这指向全局对象窗口。
5
在Javascript这个决策树中确定函数()函数的过程是这样的:
1)函数(5)调用是用新调用的吗这显然不是,进入分支,也就是,用点()调用的函数吗;
2)函数(5)不是由点()调用的,也就是说,是否进入分支,也就是说,这里这里指的是全局变量窗口,所以这个x实际上是窗口。
下图所示的图形函数函数指向的是一个解析图,如下图所示:
看看直接调用函数的方法,下面是一个复杂的例子:
var点{ { {
X:0,
y:0,
MoveTo:函数(x,y){
内部函数
VaR Movex =函数(x){
这个。x = x;这个/这个指向什么窗口
};
内部函数
无功movey =功能(Y){
这个,y,y;这个点指向什么窗口
};
MoveX(X);
MoveY(Y);
}
};
Point.moveTo(1,1);
点x;0
点:y;0
x 1;
y;1
的point.moveto(1,1)函数实际调用在Movex()和()函数,movey,这在Movex()函数是在Javascript这样的决策树来判断。
1)是继续前进(1)函数调用,调用新的吗这显然不是,进入分支,也就是,用点()调用的函数吗;
2)Movex(1)函数不调用点(),即是否进入分支,即,这里指的是全局变量窗口,所以这实际上是X。X窗口。
下面是构造函数调用的一个示例。
函数点(x,y){
这个。
这个。
}
新点(1,1);
1;
var p点(2,2);
P.; / /错误,P是一个空对象定义
窗口2
点(1,1)函数是由这个变量在新的点(1,1)中的Javascript这个决策树中确定的。
1)新调用的var =新点(1,1)调用吗显而易见的是,条目是分支,也就是说,这指向NP;
2)然后,x=1,也就是,x=1;
点(2,2)功能是通过在VAR P =点确定(2,2)在Javascript这个决策树。
1)是无功P =点(2,2)调用调用新的吗这显然不是,进入分支,也就是,用点()调用的函数吗;
2)点(2,2)功能不是由点(。)不管是否,也就是说,这里指向全局变量窗口,然后这个x实际上是窗口;
3)这个x = 2是窗口= x = 2。
最后,看看调用和应用程序调用的函数示例。
函数点(x,y){
这个;
这个,y = y;
this.moveto =函数(x,y){
这个;
这个,y = y;
}
}
新的点(0, 0);
var = x:0,y:0 };
p1.moveto.apply(P2,{ 10, 10 }); / /申请实际上是p2.moveto(10,10)
10
确定p1.moveto.apply过程(P2,{ 10,10 })功能在Javascript这个决策树是这样的:
我们知道这两种应用方法和调用方法都非常强大。他们允许切换上下文(语境)功能函数的执行,即本binding.p1.moveto.apply对象(P2,{ 10,10 })实际上是p2.moveto(10,10)。然后p2.moveto(10,10)可以解释为:
1)是p2.moveto(10,10)调用的函数被称为新的吗这显然不是,进入分支,也就是,用点()调用的函数吗;
2)的p2.moveto(10,10)函数调用点(。),即进入分支,在这一点p2.moveto(10,10)。上一个对象是P2 = 10。
Javascript函数执行环境的过程中,描述的感觉IBM developerWorks文档库是非常好的,以下摘录:
Javascript的函数可以执行为一个共同的功能,或作为一个对象的方法,这是导致这一内涵丰富的主要原因。执行一个函数,将创建一个执行环境(ExecutionContext),所有行为的作用发生在这个执行环境,构建执行环境,Javascript首先创建一个可变的参数,包含一个参数在调用函数时,创建一个作用域链,然后初始化变量,首先初始化函数的参数表,该值在参数变量的对应值,如果参数变量没有对应的值,参数初始化为不确定。如果函数包含一个内部函数,内部函数初始化。如果没有,继续初始化局部变量在函数内部定义的,需要注意的是,这些变量初始化为未定义,执行环境的任务(ExecutionContext)创建成功,执行会执行这个功能,对于我们理解Javascript中的变量范围是非常重要的,鉴于篇幅,我们这里先不讨论这个话题。最后,这个变量被赋值给这个全局对象,当前对象,等等,如前所述,在这一点上,执行环境(ExecutionContext)的功能是创建成功,且功能执行的行行。所有的变量都需要从先前建立的执行环境(ExecutionContext)读。
理解这句话会理解Javascript功能好。 U3000
以上是对这个关键字的详细介绍。一般情况下,你比课文更容易理解。我希望这篇文章能帮助你学习。