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="测试" οnclick="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也可以沿用这一规则。定义类的时候第一个字母都用大写的字母,创建类的实例的时候第一个字母都是小写。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值