`
litf
  • 浏览: 11789 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

JavaScript基于对象编程的概念(Ext)3

阅读更多

Javascript定义阶段执行阶段以及变量作用域的概念

所谓定义:比如:用var关键字定义变量,用function关键字定义函数(定义函数,就是定义一个新的作用域),如果不用var关键字来定义变量,则这些变量就是全局变量。

所谓执行:比如:用new关键字创建新的对象,用=赋值,用()来执行函数等等。

 

Javascript运行的顺序是:先定义后执行。定义的时候,确定变量的作用域(所谓变量的作用域,即定义变量可以在哪里被访问到);执行的时候,会有一个执行上下文(this变量)。

 

下面的例子解释了这些概念:

 

* 全局作用域

<script type="text/javascript">

 

a = 10;

var b = 20;

 

function ABC(){

    alert("good!");

}

 

alert(a); //10

alert(b); //20

alert(ABC);//函数代码

alert(window.a);//10

alert(window.b);//20

alert(window.ABC);//函数代码

ABC();//good!

window.ABC();//good!

 

function H1(){

    alert(b); //在这个函数内部也可以访问,因为b变量是全局的

}

H1();//20

 

function H2(){

    test = "hello"; //这里,没有用var关键字,定义的是一个全局变量

}

H2();

alert(test); // hello

 

</script>

总是会有一个window对象,它就是全局的,在javascript任何函数外部定义的变量、函数,或者在函数内部不用var关键字定义的变量,都是全局变量,它的作用域是全局的!

 

* 定义和执行的先后顺序问题

<script type="text/javascript">

 

alert(Hello); //这里将弹出函数的定义信息

 

Hello(); // good!

 

function Hello(){

    alert("good!");

}

 

</script>

上述代码的执行结果表明,用function定义的变量Hello(它是一个全局变量),早于执行过程。执行是一行一行代码往下执行,定义早于执行,定义就是确定变量及其作用域。

 

<script type="text/javascript">

alert(a);

alert(b);

alert(c);

var a = "a";

function a(){}

function b(){}

var b = "b";

var c = "c";

var c = function(){}

alert(a);

alert(b);

alert(c);

 

</script>

上述代码的结果,如果你能够完全正确的回答出来的话,那么证明你理解了定义和执行先后的概念!

 

* 如何创建新的作用域? - 可以利用function来创建新的作用域

<script type="text/javascript">

 

alert(H1); //将得到函数的定义

 

alert(H2); //将出错,H2被定义到H1的内部,所以在H1的外部看不到这个变量

 

H1(); //可以执行,因为在这里能够看到H1

 

function H1(){

 

    alert(H2); //将得到函数的定义

    alert(H3); //将出错,H3被定义到H2的内部,所以在H2的外部看不到这个变量

   

    H2(); //可以执行,因为在这里可以看到H2

    function H2(){

       alert(H3); //将得到函数的定义

       function H3(){

       }

    }

}

 

</script>

 

 

<script type="text/javascript">

 

(function(){

    function hello(){ //这个定义,能够覆盖全局定义

       alert("ok");

    }

    hello(); //调用的是内部函数,因为在本命名空间中,它代表的就是内部函数定义

})(); //定义一个函数(通常是一个匿名函数),并立刻执行,可以将代码进行封装,避免代码中的定义污染全局命名空间

 

function hello(){ //全局函数

    alert("hh");

}

hello();

 

</script>

定义一个匿名函数,并执行,可以将代码封装到某个作用域中执行,这样可以避免污染全局命名空间!

0
1
分享到:
评论

相关推荐

    JavaScript面向对象编程

    虽然通常情况下,开发者将其视为一种基于函数的语言,仅用来处理一些简单的前端数据验证或实现基本的页面动态效果,但事实上,JavaScript 具有强大的面向对象编程能力。这主要体现在它支持面向对象编程的基本特征:...

    ExtJS Ext ExtJavascript Javascript

    JavaScript是一种解释型、跨平台的编程语言,主要应用于Web浏览器,用于增加网页的动态功能,如响应用户交互、操作DOM(文档对象模型)、执行异步通信(Ajax)等。JavaScript是Web开发中的基石,而ExtJS则是在这个...

    ext面向对象和继承

    在JavaScript的世界里,面向对象(Object-Oriented Programming, OOP)是一种常用的设计模式,它允许我们通过类和对象来组织代码,实现代码的复用和模块化。本篇文章将探讨EXTJS框架中的面向对象机制,特别是继承的...

    Ext实现java的面向对象实例

    了解并掌握这些Ext的面向对象特性,有助于编写更高效、结构化的JavaScript代码,特别是在构建复杂的Web应用程序时。在实际的`ExtTest`项目中,这些概念会被广泛运用,以创建可复用、可维护的组件和模块。

    ext面向对象编程教程

    EXTJS 是一个基于 JavaScript 的富客户端框架,它提供了强大的组件模型和面向对象的编程方式,使得开发者能够构建复杂的 Web 应用程序。面向对象编程(Object-Oriented Programming, OOP)是EXTJS的核心特性之一,...

    Ext获取对象

    Ext JS是一个流行的JavaScript库,用于构建桌面和移动应用程序的用户界面。它提供了一种面向对象的编程模型,使得开发者可以方便地管理和操作组件、数据存储以及事件处理。 在Ext JS中,对象通常指的是各种UI组件...

    EXT2.0,EXT4.0,JS

    EXT2.0、EXT4.0 和 JS 是计算机科学领域中的三个重要概念,它们分别代表了Linux文件系统、JavaScript编程语言以及JavaScript库EXT JS的相关版本。 EXT2.0是Linux操作系统下的一种文件系统,它是EXT(第二扩展文件...

    ext的课件,ppt版,适合有面向对象基础人士

    对于已经具备面向对象编程基础的开发者来说,学习Ext可以帮助他们快速创建功能强大且具有吸引力的Web应用。 首先,理解Ext的核心概念至关重要。Ext是一个Ajax框架,其主要目标是提升Web应用的交互性和用户体验。它...

    EXT dojochina Ext类静态方法.rar

    1. **EXT类体系**:EXT基于面向对象的编程理念,采用类继承的方式来组织代码。所有EXT组件都继承自一个基础类,如Ext.Component,通过扩展和组合这些基类来创建特定的UI元素。 2. **静态方法的概念**:静态方法是不...

    Ext框架结构 Ext目录结构

    Ext框架是基于JavaScript的UI库,它为Web应用程序提供了丰富的组件和交互效果。在深入探讨Ext框架结构之前,我们先来理解一下JavaScript框架的基本概念。一个JavaScript框架是用于简化JavaScript开发的一系列预定义...

    ext 打造华丽页面

    JavaScript是EXT JS的基石,因此掌握JavaScript的基本语法和面向对象编程是使用EXT的前提。EXT JS 1.1虽然较为古老,但仍然包含了许多现代前端开发的理念,如MVC(Model-View-Controller)架构,这种架构模式有助于...

    基于Ext的单页系统设计与研究.pdf

    综上所述,文章深入探讨了基于Ext的单页系统设计方法,强调了面向对象编程思想在客户端JavaScript中的应用,以及如何利用Ext的组件化和动态数据加载特性优化用户体验。通过这种方式,开发者能够构建出高效、易于维护...

    javascript对象和函数[文].pdf

    JavaScript是一种基于对象的编程语言,但并非严格意义上的面向对象语言,因为它仅实现了封装,缺乏继承和多态。JavaScript中的对象是关键元素,几乎无处不在,甚至函数本身也被视为对象。对象可以理解为可变的键控...

    ext/ajax开发资料

    EXT基于JavaScript,所以理解JavaScript语法和面向对象编程概念是非常必要的。开发者可能会学到如何创建EXT组件、布局管理、事件处理等。 总的来说,这个“ext/ajax开发资料”应包含EXT库的Ajax使用方法,以及可能...

    javascript及ext学习要点(已完成).docx

    面向对象编程** JavaScript支持类(ES6引入)和原型链实现面向对象特性。可以创建对象、定义构造函数、使用原型属性和方法。 **13. JavaScript Date对象** Date对象用于处理日期和时间,可以创建、比较和操作日期...

    EXT dojochina Ext类构造方法.rar

    总结来说,本压缩包提供的资料专注于Ext类的构造方法,这涉及到Ext JS的核心编程概念,包括类的继承、构造函数的使用、配置对象、组件生命周期以及代码重用策略。掌握这些知识将有助于开发者更深入地理解和使用Ext ...

    ext PPT

    通过对这些PPT的学习,你将掌握EXT的基本用法,包括DOM操作、事件处理、组件系统和面向对象编程。EXT结合Ajax和Java,可以构建出高性能、用户友好的Web应用,适用于各种业务场景。深入理解并熟练运用EXT,能提升你的...

    ext 的3种传参demo

    在IT行业中,"EXT"通常指的是ExtJS,这是一个基于JavaScript的UI库,用于构建富客户端应用程序。它提供了大量的组件和工具,使得开发者可以创建出功能丰富的、交互性强的Web应用。"传参"则涉及到函数调用时传递参数...

    Ext继承和扩展写的例子。

    总结来说,"Ext继承和扩展写的例子"这个主题,涉及到的核心知识点包括JavaScript的面向对象编程,Ext JS库的使用,特别是其组件模型和继承机制。通过学习这个例子,开发者可以深入理解如何利用这些特性创建可复用、...

Global site tag (gtag.js) - Google Analytics