• JavaScript面向对象编程笔记


    JavaScript版本的问题:
    在开发过程中经常会碰到一些版本问题,在看一些文章的时候经常没有说明一下运行的环境及相关的软件版本等,可能造成很大的误解。
    目前常用的版本是JavaScript1.2,如  <SCRIPT LANGUAGE="JavaScript1.2"></script>,如果没有写版本号,默认按最高的版本运行。如:<SCRIPT LANGUAGE="JavaScript"></script>
    还有两个版本是 <SCRIPT LANGUAGE="JavaScript1.0"></script>和<SCRIPT LANGUAGE="JavaScript1.1"></script>


    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
     <HEAD>
      <TITLE> 脚本测试窗口 </TITLE>
      <META NAME="Generator" CONTENT="EditPlus">
      <META NAME="Author" CONTENT="">
      <META NAME="Keywords" CONTENT="">
      <META NAME="Description" CONTENT="">
      <SCRIPT LANGUAGE="JavaScript1.2">
      <!--
        var homer = {name:'adfsadf',age:34,married:true} //这种创建对象的方式只适用于1.1及以后的版本。
        function Rectangle(w,h)//构造函数
        {
            this.width = w;
            this.height = h;
            return null; //这行可以不写。(测试用)如果在1.0版本中,构造函数返回值后,后面的ret1就是null了,当取ret1.width的时候就会报错。
        }

        function Test(obj)
        {
            //delete homer.name;//在1.2版本中新增加的功能,可以完成把这个属性删除。以前的版本只能实现homer.name=null 的效果。
    //        for(var i in homer)
    //        {
    //            alert(i);
    //        }
            var ret1 = new Rectangle(11,12);

            alert("测试成功!"+ ret1.width + "|"+ ret1.height);
            var ret2 = new Rectangle(13,12);

            alert("测试成功!"+ ret2.width + "|"+ ret2.height);
        }
      //-->
      </SCRIPT>
     </HEAD>
     <BODY>
      <INPUT TYPE="button" name="btn1" value="测试" onclick="Test(this);">
     </BODY>
    </HTML>


    方法:

    在1.0的时候只能这样定义对象的方法:
        function Rectangle(w,h)//构造函数
        {
            this.width = w;
            this.height = h;
            this.area = compute_area;//在1.0的时候只能这样写或者这样写@1
            return null; //这行可以不写。(测试用)如果在1.0版本中,构造函数返回值后,后面的ret1就是null了,当取ret1.width的时候就会报错。
        }

        function compute_area()
        {
            return this.width * this.height;
        }

        function Test(obj)
        {
           
            var ret1 = new Rectangle(11,12);
            ret1.area = compute_area; //在1.0的时候只能这样写或者这样写:查看@1
           
            alert("测试成功!"+ ret1.width + "|"+ ret1.height + "|"+ret1.area()+ "|"+ret1.area);
            var ret2 = new Rectangle(13,12);

            alert("测试成功!"+ ret2.width + "|"+ ret2.height);
        }
    1.1以后引入了更好的方法(引入了原型对象的概念相当于继承类):  prototype属性可以设置为适当的对象。增加了以原型对象为基础的继承机制,具备了面向对象语言的三个特性(封装、继承、多态)所以说javascript也是一种面向对象的语言。只是不同于java和C++等以类为基础的继承机制。

    Java中有一条常用的约定,那就是命名类时以大写字母开头,命名对象时以小写字母开头。JavaScript也可以沿用这一规则。定义类的时候第一个字母都用大写的字母,创建类的实例的时候第一个字母都是小写。

  • 相关阅读:
    ATM项目分析
    Python常用模块大全
    一文了解@Conditional注解说明和使用
    Spring IOC源码分析之-刷新前的准备工作
    Spring Cloud Zuul API服务网关之请求路由
    ArrayList相关方法介绍及源码分析
    记一次序列化的JSON解析问题
    大型网站架构演化发展历程
    Spring Cloud Ribbon负载均衡
    Spring Cloud Hystrix 服务容错保护
  • 原文地址:https://www.cnblogs.com/liubiqu/p/1123759.html
Copyright © 2020-2023  润新知