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

转载于:https://www.cnblogs.com/liubiqu/archive/2008/03/26/1123759.html

JavaScript面向对象编程笔记相关推荐

  1. 《javascript面向对象编程指南》读书笔记

    <javascript面向对象编程指南>读书笔记 <javascript面向对象编程指南>读书笔记 第一章 面向对象的JavaScript 第二章 基本数据类型与流程控制 变量 ...

  2. (转)Javascript 面向对象编程(一):封装

    它们都是非常优秀的Javascript读物,推荐阅读. 笔记分成三部分.今天的第一部分是讨论"封装"(Encapsulation),后面的第二部分和第三部分讨论"继承&q ...

  3. JavaScript 面向对象编程(四) —— 正则表达式

    本篇为 JavaScript 进阶 ES6 系列笔记第四篇,将陆续更新后续内容.参考:JavaScript 进阶面向对象 ES6 : 系列笔记: JavaScript 面向对象编程(一) -- 面向对 ...

  4. JavaScript 面向对象编程(三) —— 函数进阶 / 严格模式 / 高阶函数 / 闭包 / 浅拷贝和深拷贝

    本篇为 JavaScript 进阶 ES6 系列笔记第三篇,将陆续更新后续内容.参考:JavaScript 进阶面向对象 ES6 :ECMAScript 6 入门 系列笔记: JavaScript 面 ...

  5. JavaScript 面向对象编程(二) —— 构造函数 / 原型 / 继承 / ES5 新增方法

    本篇为 JavaScript 进阶 ES6 系列笔记第二篇,将陆续更新后续内容.参考:JavaScript 进阶面向对象 ES6 :ECMAScript 6 入门 : Javascript 继承机制的 ...

  6. Javascript 面向对象编程(一):封装 ——转自阮一峰博客

    Javascript 面向对象编程(一):封装 作者: 阮一峰 日期: 2010年5月17日 学习Javascript,最难的地方是什么? 我觉得,Object(对象)最难.因为Javascript的 ...

  7. 《JavaScript面向对象编程指南》——第1章 引言1.1 回顾历史

    本节书摘来自异步社区<JavaScript面向对象编程指南>一书中的第1章,第1.1节,作者: [加]Stoyan Stefanov 译者: 凌杰 更多章节内容可以访问云栖社区" ...

  8. 《JavaScript面向对象编程指南》——1.3 分析现状

    本节书摘来自异步社区<JavaScript面向对象编程指南>一书中的第1章,第1.3节,作者: [加]Stoyan Stefanov 译者: 凌杰 更多章节内容可以访问云栖社区" ...

  9. (二)Javascript面向对象编程:构造函数的继承

    Javascript面向对象编程:构造函数的继承 这个系列的第一部分,主要介绍了如何"封装"数据和方法,以及如何从原型对象生成实例. 今天要介绍的是,对象之间的"继承&q ...

最新文章

  1. Silverlight+WCF 新手实例 象棋 主界面-事件区-求和认输(三十二)
  2. 曹大带我学 Go(8)—— 一个打点引发的事故
  3. 《统计学习方法》P74勘误
  4. LOJ#6282. 数列分块入门 6
  5. axure日期选择器组件_vue干货分享,超过六种组件通信方法讲解和精髓归纳
  6. AI开发者顶会,这一次,人人都可以参加!
  7. [Coci2015]Divljak
  8. 测试可变字符序列stringBuilder
  9. TX2Ubuntu16.04远程登录
  10. 数据库同步功能要慎用
  11. 介绍几款在线编程工具(Python)
  12. Unity RTS 策略游戏等建造系统仿照COC游戏的插件 - City Building Perfect Kit
  13. android krc歌词解析,10行代码解析krc歌词文件
  14. PHP网站批量自动发外链工具源码
  15. 【安卓按键精灵自动取色(可用于比色,多点找色,找图实现)】
  16. 论文发表的等级分为哪些
  17. UPnP 协议栈的威胁分析及防范方案
  18. CPU单线程性能排行榜/天梯图
  19. 适合手机运行的服务器系统,同样2GB内存 手机为啥不如电脑运行好?
  20. IP和MNC地址协议

热门文章

  1. 第一次上计算机课日记500,第一次上网课作文500字
  2. 华为交换机之SNMP管理
  3. r语言多重共线性_R语言与计量经济学(二)多重共线性
  4. python 冷门_csvkit---python一个牛逼到不行的csv处理库
  5. android 6gb和8gb区别,手机6GB内存和8GB内存的差距到底有多大?你可能被忽悠了!...
  6. c语言五子棋linux,在linux下ubuntu的五子棋游戏c语言代码.doc
  7. python求数列的积_python小游戏学习笔记4-2(列表【】,数列矩阵排列)
  8. 搭建好看的静态博客(使用Hexo进行搭建)
  9. div垂直水平居中经常使用的方法
  10. 如何垂直居中一个浮动元素