动态原型

动态原型模式将所有信息封装在了构造函数中,而通过构造函数中初始化原型(仅第一个对象实例化时初始化原型),这个可以通过判断该方法是否有效而选择是否需要初始化原型。

function Blog(name, url) {

  this.name = name;

  this.url = url;

  if (typeof this.alertInfo != ‘function‘) {

    // 这段代码只执行了一次

    alert(‘exe time‘);

    Blog.prototype.alertInfo = function() {

      alert(thia.name + this.url);

    }

  }

}

var blog = new Blog(‘wuyuchang‘, http://tools.***.net),

  blog2 = new Blog(‘wyc‘, ‘http:***.com‘);

}

时间: 2024-10-09 19:02:04

动态原型的相关文章

javascript原型,组合,动态原型,稳妥构造函数式

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getS

Android应用开发-从设计到实现 3-9 Origami动态原型设计

动态原型设计 动态的可交互原型产品,是产品经理和界面设计师向开发人员阐释自己设计的最高效工具. 开发者不需要猜测设计师要什么样的效果,照着原型产品做就好了. 很多创业团队也发现了产品人的这个刚需,做出了诸如Principle.Axure这类著名的原型设计产品. Facebook似乎也深谙此道,专门为安卓和iOS系统开发很有针对性的交互原型设计工具-Origami Studio. 这是一个免费的工具,而且也能和Sketch互通,所以我选择了它来向大家讲解互动原型的设计. 界面介绍 启动Origam

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

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

Framer – 将视觉搞转换为更真实的动态原型

Framer 是一个 JavaScript 框架,简化了创建现实原型,实现完整的3D效果.以一种简单,可读的和强大的方式定义交互和创建动画. 另外还有 Framer Generator  是一个桌面应用程序,从 Photoshop 文件导入资源和和文件夹层次结构.你的视觉设计完成后,使用 Framer Generator 导入就可以立刻开始添加交互和动画. 您可能感兴趣的相关文章 创意无限!一组网页边栏过渡动画[附源码下载] 真是好东西!13种非常动感的页面加载动画效果 你见过吗?9款超炫的复选

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

//动态原型模式 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 + '运行中...'; }; } } //原型的初始化,只要第一次初始化就可以

函数创建对象(4)动态原型模式

把所有信息封装在构造函数内,通过在构造函数中初始化原型,保持了同时使用构造函数和原型的优点,通过检查某个应该存放的方法是否有效,来决定是否需要初始化原型.(通过if判断) function Person(name,age,job){ this.name=name; this.age-age; this.job=job; //判断方法是否存在 if(typeof this.sayName!="function"){ Person.prototype.sayName=function(){

js:对象的创建(基于组合和动态原型)

基于原型的创建虽然可以有效地完成封装,但是依然存在如下问题: 1.无法通过构造函数来设置属性值 2.当属性中有引用类型变量时,可能存在变量值重复 function Person(){ } Person.prototype = { constructor:Person, name:"Leon", age:30, friends:["Ada","Chris"], say:function(){ alert(this.name+"["

js17---创建对象:构造函数式和原型组合模式、动态原型模式、稳妥构造函数式

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Unt

javascript学习笔记10(基于组合与动态原型创建对象)

基于组合与动态原型创建对象 方法一:在外部设置prototype <script type="text/javascript">/** * 为了解决原型所带来的问题,此处需要通过组合构造函数和原型来实现对象的创建 * 将属性在构造函数中定义,将方法在原型中定义 * 这种有效集合了两者的优点,是目前最为常用的一种方式 */    function Person(name,age,friends){        //属性在构造函数中定义        this.name =

js 动态原型方式ajax异步类

js 面向对象,挺好玩的,整好上次用jquery 实现瀑布流有兼容性问题,而且是在google 上,就重新用js 写了一个,这里使用了ajax ,就把ajax 单独封装起来了. js 面向对象有几种实现方式: 1 原始方式:对象的属性可以在对象创建后动态定义 var oCar = new Object; oCar.color = "blue"; oCar.doors = 4; oCar.mpg = 25; oCar.showColor = function() { alert(this