JavaScript 阶段小结

  JavaScript 是一种脚本语言,主要用在浏览器中,实现对网页的文档对象的操作和一些用户交互动作的处理。李炎恢老师所讲的一百多集视频,对JavaScript进行了一次比较彻底的剖析,作为初学者感觉老师讲了好多的东西。这是缺乏全局观的表现,没有在全局上对JavaScript进行分析,只是一头扎进视频里不能自拔,所以才觉得知识琐碎,没有联系。但是对视频中琐碎的知识进行整理才发现:

  JavaScript一共分为三部分:ECMAScript、DOM、BOM。

                                               

  ECMAScript实际上是一种脚本语言在语法和语义上的标准,定义了脚本语言的所有属性、方法和对象。这些基础的知识就不再多说了,这里主要提一下JavaScript的继承机制是怎么实现的。

  作为面向对象的语言,JavaScript也必须支持继承机制,但是他的继承却与其他语言略有不同。

  1、 对象冒充

  构造函数使用this关键字给所有属性和方法赋值。因为构造函数只是一个函数,所以可使ClassA的构造方法称为ClassB的方法,然后调用它。ClassB就会收到ClassA的构造方法中定义的属性和方法。

  这样变量b中就包含了ClassA中定义的方法。

	function ClassA(name){
            this.name=name;
            this.getName=function(){
                return this.name;
            }
        }
        
        function ClassB(name,password){
            this.ClassA=ClassA;
            this.ClassA(name);
            delete this.ClassA;
            
            this.password=password;
            this.getPassword=function(){
                return this.password;
            }
        }
        
        var b =new ClassB('wwww','1123');
        document.write(b.getName());


 

  此外,我们还可以通过call()和apply()方法实现对象冒充,不再举例。

  2、原型链

  原理是:对象的构造函数可以从其他对象中继承方法,它创建出一个原型对象后,所有其他的新对象都可以基于这个原型对象来构建。原型本身并不会从其他原型或者构造函数中继承属性,而属性都是从实际对象那里继承过来的。

	function Person(name){
            this.name=name;
        }
        
        Person.prototype.GetName=function(){
            return this.name;
        }
        
        function User(name,password){
            this.name = name;
            this.password = password;
        }
        
        User.prototype = new Person();
        User.prototype.GetPassword=function(){
            return this.password;
        }


 

  解释:

  User.prototype = new Person();这句话如何理解呢?User是对User对象构造函数的引用,new Person()使用person构造函数创建了一个Person对象,然后把Person对象的原型置为这个操作的结果。也就是说,当每次new User()时,得到的新User对象都会带有Person对象的所有方法

 

  DOM--对象文档模型(Document Object Model),是 HTML 和 XML 的应用程序接口(API)。DOM 将把整个页面规划成由节点层级构成的文档。HTML 或 XML 页面的每个部分都是一个节点的衍生物,用 DOM API 可以轻松地删除、添加和替换节点。通过这种机制使我们对文档的内容和结构具有空前的控制力,大大提高了页面的交互能力。

  HTML DOM树形图:

                                          

 

 

  BOM(浏览器对象模型),可以对浏览器窗口进行访问和操作。使用 BOM,我们可以移动窗口、改变状态栏中的文本以及执行其他与页面内容不直接相关的动作。

  其中就包括浏览器检测,由于每个浏览器都具有自己独到的扩展,所以在开发阶段来判断浏览器是一个非常重要的步骤。虽然浏览器开发商在公共接口方面投入了很多精力,努力的去支持最常用的公共功能;但在现实中,浏览器之间的差异,以及不同浏览器的“怪癖”却是非常多的,因此浏览器检测除了是一种补救措施,更是一种行之有效的开发策略。作为开发者,我们更应该全面的考虑问题,提高系统的健壮性、可靠性!

 

 

  总结:

          ECMAScript 描述了JavaScript语言的语法和基本对象;——核心

          DOM 描述了处理网页内容的方法和接口;

          BOM 描述了与浏览器进行交互的方法和接口。

               JavaScript的学习才刚刚开始。。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。