JavaScript2种构造函数创建对象的模式以及继承的实现

第一种模式:

function Person(){
}
Person.prototype.say=function(){
    alert(‘hello‘);
}
var person=new Person();
person.say();//hello

根据第一种模式说一下继承的实现:

function Person(){
}
Person.prototype.say=function(){
    alert(‘hello‘);
}
function Man(){}
Man.prototype=new Person()
var man=new Man();
man.say(); //hello

第二种模式:

function Person(){
    var _this={};//创建一个空的对象
    _this.say=function(){alert(‘hello‘)};
    return _this;
}
function person=new Person();
person.say();//hello

第二种模式的继承:

function Person(){
    var _this={};//创建一个空的对象
    _this.say=function(){alert(‘hello‘)};
    return _this;
}
function Man(){
    var _this=new Person();
    return _this;
}
var a=new Man();
a.say();//hello

本文作者:罗坚元

时间: 2024-10-11 01:22:37

JavaScript2种构造函数创建对象的模式以及继承的实现的相关文章

js - 创建对象的几种方式(工厂模式、构造函数模式、原型模式)

原文引用https://www.dazhuanlan.com/2019/08/26/5d62f8b594f10/ 工厂模式 做法:内部创建一个对象,并未对象属性赋值并且返回 缺点:解决创建多个相识对象的问题,但不能识别创建的对象的类型 构造函数模式 做法:直接将属性和方法赋值给 this 对象,没有 return 语句 缺点:对象不是共用方法和属性,每 new 一次对象就要创建一个内存,超出性能消耗 原型模式 做法:通过 prototype 为对象添加属性 缺点:每个实例都共享属性方法,实例中修

js面向对象小结(工厂模式,构造函数,原型方法,继承)

最近过了一遍尼古拉斯泽卡斯的高级程序设计第三版(红皮书)第六章:面向对象程序设计,现在把总结出来的东西和大家分享一下. 主要内容如下: 1.工厂模式 2.构造函数模式 3.原型模式 4.继承 一.工厂模式 工厂模式中的函数中会创建一个对象,最后return这个对象,通过每次调用时传入的参数不同来解决创建多个相似对象的问题. // 工厂模式 function creatPerson(name, age, job) { var o = {}; o.name = name; o.age = age;

网络电视精灵~分析~~~~~~简单工厂模式,继承和多态,解析XML文档

小总结: 所用技术: 01.C/S架构,数据存储在XML文件中 02.简单工厂模式 03.继承和多态 04.解析XML文档技术 05.深入剖析内存中数据的走向 06.TreeView控件的使用 核心:通过该项目,我们对业务流程有一个整体把控.对继承和多态有深入的了解 下面是类图: 主界面图: 核心思路: 1   1.首先在频道管理类ChannelManager中写一个加载所有频道方法LoadAllChannel; 2   3        该方法作用读取FullChannels.xml文件,并且

javascript--面向对象(二、工厂模式,构造函数,原型模式)

一.前言 上一篇介绍了对象的基本简单的概念和对象的数据属性和访问器属性,以及对这两种属性类型的一些操作,接来说一下与创建对象的模式. 二.创建对象的方式 (1)工厂模式 这种模式就是通过创建一个Object对象,并将属性和方法保存在Object对象中,将Object对象返回. function createPerson(name, age, job){ var obj = new Object();//通过创建Object来保存传递进来的属性 obj.name = name; obj.age =

基于上一篇的模块化思路,巩固个小知识点——构造函数与原型模式

具体可参考红皮书第三版中的6.2.4章 书中的例题详细讲解了什么是原型模式 function fop(){}; fop.prototype.name="xiaohong"; fop.prototype.age="12"; fop.prototype.sayName=function(){ console.log(this.name); } var per1=new fop(); per1.sayName(); var per2=new fop(); per2.say

ORM 是一种讨厌的反模式

本文由码农网 – 孙腾浩原创翻译,转载请看清文末的转载要求,欢迎参与我们的付费投稿计划! (“Too Long; Didn’t Read.”太长不想看,可以看这段摘要 )ORM是一种讨厌的反模式,违背了所有面向对象的原则.将对象分隔开并放入被动的数据包中.ORM没有理由存在任何应用中,无论是小的网络应用还是涉及增删改查上千张表的企业系统.用什么来替代它呢?SQL对象(SQL-speaking objects). ORM如何工作 Object-relational mapping(ORM)是一种链

23种设计模式之原型模式(Prototype)

在系统开发过程中,有时候有些对象需要被频繁创建,原型模式通过给出一个原型对象来指明所要创建的对象的类型,然后通过复制这个原型对象的办法,创建出更多同类型的对象.原型模式是一种对象创建型模式,用原型实例制定创建对象的种类,并且通过复制这些原型创建新的对象.原型模式又可分为两种:浅克隆和深克隆.浅克隆仅仅复制所考虑的对象,而不复制它所引用的对象,也就是其中的成员对象并不复制:深克隆除了对象本身被复制外,对象包含的引用也被复制,即成员对象也被复制. 优点: 1)可以在运行时添加或删除产品. 2)通过改

JAVA开发的23种设计模式之 --- 桥接模式

桥接模式 概述:将抽象部分与他的实现部分分离,这样抽象化与实现化解耦,使他们可以独立的变化.如何实现解耦的呢,就是通过提供抽象化和实现化之间的桥接结构.    应用场景        实现系统可能有多个角度分类,每一种角度都可能变化.    解释:桥接模式将继承模式转化成关联关系,他降低了类与类之间的耦合度,减少了系统中类的数量,也减少了代码量.    理解抽象化,实现化,解耦        抽象化:将复杂物体的一个或几个共同的特性抽出去而只注意其他特性的行动或过程.在java面向对象中抽象化就

浅析Windows系统调用——2种切换到内核模式的方法

首先总结2种切换到内核模式方法的各自流程: 内存法(中断法): (用户模式)WriteFile() -> ntdll!NtWriteFile() -> ntdll!KiIntSystemCall() -> int 2Eh -> 查找IDT的内存地址,偏移0x2E处 ->(内核模式)nt!KiSystemService() -> nt!KiFastCallEntry() -> nt!NtWriteFile() 通过0x2E中断转移控制到内核模式后,系统服务分发/调度