javascript创建对象之动态原型模式(五)

动态原型模式是将所有的信息都封装到工造函数中,而构造函数中初始化原型,有保持了同时在使用构造函数和原型的优点.

function Human(name, sex) {
            this.name = name;
            this.sex = sex;
            if (typeof this.say != "function") {
                Human.prototype.say = function () {
                    alert(this.name);
                }
            }
        }
       var man =new Human ("凯撒", "男");
              man.say();//凯撒

构造函数中,只用say不存在的情况下,才会将它添加到原型中.这段代码只有在初次调用时才会执行.

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索函数
, function
, this
, 模式
, name
, 原型
动态原型
javascript原型对象、js 原型创建对象、javascript 创建对象、javascript创建对象的、java 动态创建对象,以便于您获取更多的相关知识。

时间: 2024-12-10 06:35:03

javascript创建对象之动态原型模式(五)的相关文章

Javascript实例教程:使用动态原型模式

文章简介:使用动态原型模式时,不能使用对象字面量重写原型.前面已经解释过了,如果在已经创建了实例的情况系重写原型,那么就会切断现有实例与新原型之间的联系. 有其它OO语言经验的开发人员在看到独立的构造函数和原型时,很可能会感到非常的困惑.动态原型模式正是致力于解决这个问题的一个方案,它把所有信息都封装在了构造函数中,而通过在构造函数中初始化原型(仅在必要的情况下),又保持了同时使用构造函数和原型的优点.换句话说,可以通过检查某个应该存在的方法是否有效,来决定是否需要初始化原型.来看一个例子: f

JS面向对象基础讲解(工厂模式、构造函数模式、原型模式、混合模式、动态原型模式)_javascript技巧

什么是面向对象?面向对象是一种思想!(废话). 面向对象可以把程序中的关键模块都视为对象,而模块拥有属性及方法.这样我们如果把一些属性及方法封装起来,日后使用将非常方便,也可以避免繁琐重复的工作.接下来将为大家讲解在JS中面向对象的实现.   工厂模式 工厂模式是软件工程领域一种广为人知的设计模式,而由于在ECMAScript中无法创建类,因此用函数封装以特定接口创建对象.其实现方法非常简单,也就是在函数内创建一个对象,给对象赋予属性及方法再将对象返回即可. function createBlo

javascript创建对象之函数构造模式和原型模式结合使用(四)

创建自定义类型的常见方式就是组合使用构造函数模式与原型模式一起使用. 构造函数模式用于定义实例对象的特有的部分(属性和方法),原型模式用于定义共享的部分. 这样最大限度的节省了内存的开销. function Human(name, sex) {             this.name = name;             this.sex = sex;             this.getWife=function(){//娶老婆                 if (this.se

JavaScript设计模式系列之原型模式

prototype模式通过实例对象指定需要创建的类型,这与factory method模式有本质不同,factory method模式是通过类的继承定义不同子类来达到创建不同类型对象的目的,属于类模式,prototype模式通过调用组合的对象成员生成不同类型的对象实例,属于对象模式. 由于这个特性,prototype具有以下适用场合: · 需要运行时确定实例化的类时,比如动态装载库时 · 避免创建过多子类时.子类太多永远是不受欢迎的,在factory method中我们也提到通过模板或者参数化来

javascript创建对象的几种模式介绍_基础知识

在js中有几种模式可以创建对象,通过对象操作所包含的属性与方法. 一般来说,构造函数名称的第一个字母为大写字母,非构造函数名称的第一个字母为小写字母,当然,构造函数与一般函数唯一的区别只是调用的方式不同而已,所以任何函数只要通过new来调用,那它就可以作为构造函数,若不通过new来调用,则与一般函数一样. 谈谈我对这几种模式的理解: 工厂模式:创建一个一般函数,在函数里创建一个Object对象,为这个对象增添属性与方法,同时赋予其值,最后返回对象.无法识别对象类型. 构造函数模式:创建构造函数,

JavaScript面向对象程序设计三 原型模式(上)_js面向对象

我们创建的每一个函数都有一个prototype(原型)属性,该属性是一个对象,包含可以有特定类型的所有实例共享的属性和方法.使用它的好处就在于可以让所有对象实例共享它所包含的属性和方法,也就是说,不必在构造函数中定义对象的信息,而是可以将这些信息,直接添加在原型对象中,如下所示,还是接着改写前两篇日志中的例子: 复制代码 代码如下: function Employee() { }; Employee.prototype.Name = "Jim"; Employee.prototype.

javaScript创建对象

一.对象 ECMA-262把对象定义为:无序属性的集合,其属性可以包含基本值,对象或者函数.所以js中对象就是一组键值对. 面向对象的语言中,都是通过类的来创建任意多个具有相同属性和方法的对象实例的.但是js中没有类的概念,接下来我先通过一个例子来阐述js中没有 "类"的概念蕴含的哲学.这点会让初学者很困惑,但是也正因为放下了"类"的概念,js对象才有了其他编程语言没有的活力.事实上js中对象的"类"是从 无到有,又不断演化,最终消失于无形之中.

JavaScript创建对象的七种方式

JavaScript创建对象的方式有很多,通过Object构造函数或对象字面量的方式也可以创建单个对象,显然这两种方式会产生大量的重复代码,并不适合量产.接下来介绍七种非常经典的创建对象的方式,他们也各有优缺点. 工厂模式 function createPerson(name, job) {    var o = new Object()    o.name = name    o.job = job    o.sayName = function() {      console.log(th

Javascript 创建对象方法的总结

原文:Javascript 创建对象方法的总结 最近看了一下<Javascript高级程序设计(第三版)>,这本书很多人都推荐,我也再次郑重推荐一下.看过之后总得总结一下吧,于是我选了这么一个主题分享给大家. 使用Javascript创建对象的方法有很多,现在就来列举一下: 1. 使用Object构造函数来创建一个对象,下面代码创建了一个person对象,并用两种方式打印出了Name的属性值. var person = new Object(); person.name="kevin