动态原型模式,解决原型创建对象的时候未封装问题

//动态原型模式
function Box(name,age){
    this.name = name;
    this.age = age;
    this.family = [‘哥哥‘,‘姐姐‘,‘妹妹‘];

    if(typeof this.run != ‘function‘){        //判断this.run是否存在
        Box.prototype.run = function(){
            return this.name + this.age + ‘运行中...‘;
        };
    }

}

//原型的初始化,只要第一次初始化就可以了,没必要每次都初始化

var box1 = new Box(‘Lee‘,100);
alert(box1.run());

var box2 = new Box(‘Jak‘,200);
alert(box2.run());

ps:使用动态原型模式,要注意一点,不可以再使用字面量的方式重写原型,因为会切断实例和新原型之间的联系。

动态原型模式,解决原型创建对象的时候未封装问题

时间: 2024-07-28 23:45:04

动态原型模式,解决原型创建对象的时候未封装问题的相关文章

组合模式解决原型创建对象传参和共享难题

//组合构造函数+原型模式 function Box(name,age){ //保持独立的用构造函数 this.name = name; this.age = age; this.family = ['哥哥','姐姐','妹妹'] }; Box.prototype = { //保持共享的用原型 constructor:Box, run:function(){ return this.name + this.age + '运行中...'; } }; var box1 = new Box('Lee'

JS创建对象模式及其对象原型链探究(五):组合使用构造函数模式和原型模式

组合使用构造函数模式和原型模式 构造函数模式用于定义实例属性,原型模式用于定义方法和共享的属性. 创建自定义类型的最常见方式,就是组合使用构造函数模式和原型模式. 1.创建对象 // 组合使用构造函数模式和原型模式 function Person(name, age, job){ this.name = name; this.age = age; this.job = job; this.friend = ["Jenny", "Court"]; } Person.p

设计模式之创建型模式—— 1.5 原型模式

<?php /**  * 1.5 原型模式  *  解决的问题:  *  某些结构复杂的对象的创建工作,由于需  *  求的变化,这些对象经常面临着剧烈的变  *  化,但是它们却有用比较稳定一种的接口.  *  解决的方案:  *   用原型实例指定创建对象的种类,并且通  *   过拷贝这些原型创建新的对象.  *  该模式无需任何角色:  *   因为在PHP中,在每个声明的类中已经默认  *   包含了克隆函数,所以无需单独在建立一个  *   抽象类来实现克隆操作了.  *  优点:

十四、原型模式Prototype(创建型模式)

1:原型模式的本质 原型模式的本质:克隆生成对象. 克隆是手段,目的还是生成新的对象实例.正是因为原型的目的是为了生成新的对象实例,原型模式通常是被归类为创建型的模式. 原型模式也可以用来解决"只知接口而不知实现的问题",使用原型模式,可以出现一种独特的"接口造接口"的景象,这在面向接口编程中很有用.同样的功能也可以考虑使用工厂来实现. 另外,原型模式的重心还是在创建新的对象实例,至于创建出来的对象,其属性的值是否一定要和原型对象属性的值完全一样,这个并没有强制规定

Design Patterns 5 原型模式 Prototype

原型模式 Prototype 原型模式:用原型实例指定创建对象的种类,并且通过拷贝这个原型来创建新的对象. 当我们需要多个相同的类实例时,没必要每次都使用new运算符去创建相同的类实例对象,我们可以用原型模式减少内存的消耗和达到类实例的复用. //带有返回自身接口的抽象原型类 public abstract class Prototype5 { public string Id { get; set; } public Prototype5(string id) { this.Id = id;

(五)(创建型模式)原型模式

一.原型模式(prototype pattern): 使用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象.原型模式是一种对象创建型模式. 二.应用场景: 对象的创建非常复杂,可以使用原型模式快捷的创建对象.在运行过程中不知道对象的具体类型,可使用原型模式创建一个相同类型的对象,或者在运行过程中动态的获取到一个对象的状态. 三.应用实例: 动物界的掌控者Tom,想要再建造一辆奥迪车,但是再去生产比较麻烦,有没有别的方法快速获取呢? 四.方案: UML图: 代码1: package c

第九话-原型模式

有钱啦,有钱啦,是买MX4PRO还是6?知道我是怎么有那么多money的么?请学习原型模式. 一.什么是原型模式? 原型模式:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象. 注:类是抽象的,对象是具体的. 换句话说:你有一份简历(具体的),你想要10份,那就以此份为原件复印10份(具体的),OK. 二.为什么要用原型模式? 1.解决复杂类变动的困扰问题: 2.快速实例对象. 三.例子(简历) Main.java public class Main { public static

设计模式之原型模式简单即复杂(二十四)

简单只是看不见的复杂, 这很原型, 传送 原型模式(proptotype pattern)定义 用原型模式指定创建对象, 并且通过拷贝这些原型对象创建新的对象 原型模式的使用 对象的创建非常复杂, 可以使用原型模式快捷的创建对象 在运行过程中不知道对象的具体类型, 可使用原型模式创建一个相同类型的对象, 或者在运行过程中动态的获取到一个对象的状态 对于clone方法, 它执行的是浅拷贝, 也就是说如果是引用类型的属性, 则它不会进行拷贝, 而是只拷贝引用, 也就是说拷贝的对象中还有个成员对象引用

设计模式(四)原型模式Prototype(创建型)

1.   概述 我们都知道,创建型模式一般是用来创建一个新的对象,然后我们使用这个对象完成一些对象的操作,我们通过原型模式可以快速的创建一个对象而不需要提供专门的new()操作就可以快速完成对象的创建,这无疑是一种非常有效的方式,快速的创建一个新的对象. 例子1:孙悟空拔下一嘬猴毛,轻轻一吹就会变出好多的孙悟空来. 例子2:寄个快递下面是一个邮寄快递的场景:“给我寄个快递.”顾客说.“寄往什么地方?寄给……?”你问.“和上次差不多一样,只是邮寄给另外一个地址,这里是邮寄地址……”顾客一边说一边把