面向对象编程OOP-1

在下面的例子中, 我们定义了 Student类作为 Person类的子类. 之后我们重定义了sayHello() 方法并添加了 sayGoodBye() 方法

// 定义Person构造器
function Person(firstName) {
  this.firstName = firstName;
}

// 在Person.prototype中加入方法
Person.prototype.walk = function(){
  alert("I am walking!");
};
Person.prototype.sayHello = function(){
  alert("Hello, I‘m " + this.firstName);
};

// 定义Student构造器
function Student(firstName, subject) {
  // 调用父类构造器, 确保(使用Function#call)"this" 在调用过程中设置正确
  Person.call(this, firstName); //继承firstName

  // 初始化Student类特有属性
  this.subject = subject;
};

// 建立一个由Person.prototype继承而来的Student.prototype对象.
// 注意: 常见的错误是使用 "new Person()"来建立Student.prototype.
// 这样做的错误之处有很多, 最重要的一点是我们在实例化时
// 不能赋予Person类任何的FirstName参数
// 调用Person的正确位置如下,我们从Student中来调用它
Student.prototype = Object.create(Person.prototype); // See note below

// 设置"constructor" 属性指向Student
Student.prototype.constructor = Student;

// 更换"sayHello" 方法
Student.prototype.sayHello = function(){
  console.log("Hello, I‘m " + this.firstName + ". I‘m studying " + this.subject + ".");
};

// 加入"sayGoodBye" 方法
Student.prototype.sayGoodBye = function(){
  console.log("Goodbye!");
};

// 测试实例:
var student1 = new Student("Janet", "Applied Physics");
student1.sayHello();   // "Hello, I‘m Janet. I‘m studying Applied Physics."
student1.walk();       // "I am walking!"
student1.sayGoodBye(); // "Goodbye!"

// Check that instanceof works correctly
console.log(student1 instanceof Person);  // true
console.log(student1 instanceof Student); // true
对于“Student.prototype = Object.create(Person.prototype);”这一行,在不支持 Object.create方法的老JavaScript引擎中,可以使用一个"polyfill"(又名"shim",查看文章链接),或者使用一个function来获得相同的返回值,就像下面:
function createObject(proto) {
    function ctor() { }
    ctor.prototype = proto;
    return new ctor();
}

// Usage:
Student.prototype = createObject(Person.prototype);

  

				
时间: 2024-08-06 20:05:59

面向对象编程OOP-1的相关文章

学习面向对象编程OOP 第一天

面向对象编程 Object Oriented Programming 一.什么是面向对象编程OOP 1.计算机编程架构; 2.计算机程序是由一个能够起到子程序作用的单元或者对象组合而成.也就是说由多个程序单元可以拼凑成一个完整的功能程序; 3.三个目标:重用性.灵活性和扩展性; 4.每个单独的对象或者单元都可以实现数据的接收.处理和发送; 5.在实际的项目开发中,都会使用达到OOP去声明类,而且在项目里面只用对象和类. 详细参考网址(根据原文学习的) http://www.cnblogs.com

面向过程编程(OPP) 和面向对象编程(OOP)的关系

面向过程编程(OPP) 和面向对象编程(OOP)的关系 原文链接:http://blog.csdn.net/phphot/article/details/3985480 关于面向过程的编程(OPP)和面向对象的编程(OOP),给出这它们的定义的人很多,您可以从任何资料中找到很专业的解释,但以我的经验来看,讲的相对枯燥一点,不是很直观.除非您已经有了相当的积累,否则说起来还是比较费劲. 我是个老程序员出身,虽然现在的日常工作更多倾向了管理,但至今依然保持编码的习惯,这句话什么意思呢?我跟大家沟通应

2016/1/17 笔记 1,面向对象编程OOP 2,类

面向对象编程OOP 编程方式的发展 1,面向过程 重用性低 维护工作量大  2,面向对象 重用性高 维护容易 概念 1,对象 Object 一个具体的事物 是类的实例      2,类Class 同一类事物的统称 具有相同属性和行为的一类实体 特性:1,封装:  oop的核心思想           封装属性和行为,隐藏细节           保证内部数据完整性        2,继承: 子类自动继承所有父类的属性和行为           java是单继承 所有类的父类Object     

Python笔记5#面向对象编程OOP

▲面向对象编程OOP Object Oriented Programming.OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数. 面向过程的程序设计把计算机程序视为一系列的命令集合,即一组函数的顺序执行.为了简化程序设计,面向过程把函数继续切分为子函数,即把大块函数通过切割成小块函数来降低系统的复杂度. 而面向对象的程序设计把计算机程序视为一组对象的集合,而每个对象都可以接收其他对象发过来的消息,并处理这些消息,计算机程序的执行就是一系列消息在各个对象之间传递. 在Python

24 Python - 面向对象编程OOP

面向对象编程OOP 01内容回顾 02属性@property本质是函数 未用属性前内容 使用属性后内容 @property  属性本质是函数,但是用起来像字段 03继承.多态示例 继承通过下面的一个基类 和一个派生类讲解 里面用到了继承和多态 [基类] [派生类] [函数调用] 04类嵌套如Employee引用Department 注意:在Employee的init()的参数中用department:Department来说明department是一个类,这样写有利于代码可读性 调用 原文地址:

23 Python - 面向对象编程OOP

面向对象编程OOP 01 方法__repr__()和__str__() __repr__()方法类似java中的toString方法,用于反馈类的相关信息且可以自己定义,一般用于开发人员控制台调试 __rept__()和__str__()方法区别 在控制台交互测试时: 输入b返回__rept__()方法结果 输入print(b) 返回__str__()方法结果,如果没有定义__str__()方法  则用__rept__()结果代替__str__()方法结果 __rept__()   打印信息一般

面向对象编程OOP Object oriented programing

oop是面向对象编程(设计) 面向对象程序设计(英语:Object Oriented Programming,缩写:OOP),指一种程序设计范型,同时也是一种程序开发的方法论.它将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的重用性.灵活性和扩展性.基本理论 一项由 Deborah J. Armstrong 进行的长达40年之久的计算机著作调查显示出了一系列面向对象程序设计的基本理论.它们是: 类 类(Class)定义了一件事物的抽象特点.通常来说,类定义了事物的属性和它可以做到的(

php面向对象编程(oop)基础知识

面向对象并不是一种技术,而是一种思想,是一种解决问题的最基本的思维方式!如何理解使用?OOP:面向对象编程 (直接代码说明) 1.面向对象的基本概念示例demo: 1 <?php 2 header("Content-Type: text/html;charset=utf-8"); 3 //如何类的实例化? 例如: $newA= new a(); 利用类得到对象,过程是类的实例化.关键字new完成. 4 //如何定义一个类? 例如: class a{} 类 5 //如何声明定义属性

编程思想┊从实例谈面向对象编程(OOP)、工厂模式和重构

有了翅膀才能飞,欠缺灵活的代码就象冻坏了翅膀的鸟儿.不能飞翔,就少了几许灵动的气韵.我们需要给代码带去温暖的阳光,让僵冷的翅膀重新飞起来.结合实例,通过应用OOP.设计模式和重构,你会看到代码是怎样一步一步复活的. 为了更好的理解设计思想,实例尽可能简单化.但随着需求的增加,程序将越来越复杂.此时就有修改设计的必要,重构和设计模式就可以派上用场了.最后当设计渐趋完美后,你会发现,即使需求不断增加,你也可以神清气闲,不用为代码设计而烦恼了. 假定我们要设计一个媒体播放器.该媒体播放器目前只支持音频

面向对象编程(OOP)和面向过程编程

面向对象与面向过程 1.二者都是一种思想,面向对象是相对于面向过程而言的.面向过程,强调的是功能行为.面向对象,将功能封装进对象,强调具备功能的对象. 2.面向对象更加强调运用人类在日志的思维逻辑中采用的思想方法与原则,如抽象.分类.继承.聚合.多态等. 面向对象的三大特性: 1.封装 2.继承 3.多态 面向对象思想的概述: 一.程序员从执行者转化为指挥者 二.1.找具有所需功能的对象来用 2.如果没有此对象,就创建一个具有所需功能的对象. 3.简化开发,提高了复用性 三.类和对象是面向对象的