原型实例

function Fruits() {}        Fruits.prototype = {            color: ‘red‘,            say: function(num1, num2) {                return ‘i am ‘ + this.color + num1 + ‘ and ‘ + num2;            }        };        var apple = new Fruits();        alert(apple.say(1,2));        banana = {            color:‘yellow‘        };

alert(Fruits.prototype.say.call(banana, [1, 2]));//        alert(Fruits.prototype.say.apply(banana, [1, 2]));

会有出错,call的【1,2】被解析为字符串1,2放入num1,而num2为undefined;
时间: 2025-01-02 07:36:30

原型实例的相关文章

JS入门系列(2)-原型-实例属性

下面的例子中,在构造器内部定义了like,然后再原型上也定义了like.通过下面的测试表明: 在构造器内部创建的实例方法会阻挡原型上定义的同名方法 初始化操作的优先级如下: 首先,通过原型给对象实例添加属性 在构造器内部,给对象实例添加的属性 在构造器内部的绑定操作优先级用于都高于在原型上的绑定操作的优先级.因为构造器的this上下文指向的是实例自身,所以,可以在构造器内对核心内容执行初始化操作 1 <script> 2 3 function Persion() { 4 5 6 7 this.

JavaScript_构造函数/原型/实例对象的关系

1.所有的实例对象都有隐式原型属性.2.每一个函数function都有一个prototype显示原型属性.3.对象的隐式原型的值为其对应构造函数的显式原型的值.4.函数的prototype属性: 在定义函数时自动添加的, 默认值是一个空Object对象.5.对象的proto属性: 创建对象时自动添加的, 默认值为构造函数的prototype属性值.6.function Foo{}等于var Foo = new Function()所以有隐式原型属性,即所有函数都有隐式和显示原型属性.7.所有函数

读书笔记--对象、实例、原型、继承

创建对象的设计模式 工厂模式 抽象了创建具体对象的过程,用函数封装以特定接口创建对象的细节 解决了创建多个相似对象的问题,没有解决对象识别的问题 function createPerson(name,age){ var obj = new Object(); obj.name = name; obj.age = age; obj.sayName = function(){ alert(this.name) } return obj; } var person = createPerson('aa

设计模式学习笔记(十三:原型模式)

1.1概述 用原型实例指定创建对象的种类,并且通过复制这些原型创建新的对象.这就是原型模式的定义. 在某些情况下,可能不希望反复使用类的构造方法创建许多对象,而是希望使用该类创建一个对象后,以该对象为原型得到该对象的若干个复制品.也就是说,将一个对象定义为原型对象,要求改原型对象提供一个方法,使该原型对象调用此方法可以复制一个和自己有完全相同状态的同类型对象,即该方法"克隆"原型对象得到一个新对象.原型对象和以它为原型"克隆"出的新对象可以分别独立地变化,也就是说,

设计模式--原型模式C++实现

原型模式C++实现 1定义 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象 2类图 3实现 class Prototype { protected: Prototype(); public: virtual Prototype* Clone() const = 0; vitual ~Prototype() = 0; }; class PrototypeClass:public Prototype { public: PrototypeClass(); PrototypeClass

大话设计模式笔记 原型模式

原型模式(Prototype),用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象. 原型模式其实就是从一个对象再创建另外一个可定制的对象,而且不需知道任何创建的细节. 基本类型与引用类型的区别于关系在efficient java. http://www.cnblogs.com/linkarl/p/4785329.html 浅复制:对象的引用仍然指向原来的对象 深复制:把引用对象的变量指向复制过的新对象 我认为一般深复制比较常用. package prototype; public

设计模式--原型模式

原型模式 Prototype Pattern 意图:使用原型实例定义/指定被创建对象种类/类型,通过拷贝原型实例创建新对象 应用场景: 1)当某个类指定在运行时实例化 2)减少子类数量 3)降低昂贵类型新对象创建成本 好处或缺点: 1)clone方法可能实现比较困难 2)不适用于含循环引用的类结构 类结构: 参与者:client ,Prototype,ConcretePrototype prototype:定义原型的行为 //关键代码 class Notification implements

《JAVA与模式》之原型模式

在阎宏博士的<JAVA与模式>一书中开头是这样描述原型(Prototype)模式的: 原型模式属于对象的创建模式.通过给出一个原型对象来指明所有创建的对象的类型,然后用复制这个原型对象的办法创建出更多同类型的对象.这就是选型模式的用意. 原型模式的结构 原型模式要求对象实现一个可以"克隆"自身的接口,这样就可以通过复制一个实例对象本身来创建一个新的实例.这样一来,通过原型实例创建新的对象,就不再需要关心这个实例本身的类型,只要实现了克隆自身的方法,就可以通过这个方法来获取新

设计模式之原型模式

原型模式(prototype)为创建型对象模式,它是用原型实例来指定创建对象的类型的,并通过拷贝这些原型来创建新的对象.也就是说,这次我们创建新的对象和以前创建对象的方法有些不同,以前创建新的对象是用new方法作用于类上来实现的,现在我们不这样做了,给定一个类的实例,我们通过克隆这个类的实例来创建新的实例,显然,这个类本身要有能够实现"克隆"机制的方法才行,这样用该类创建出的对象才能拥有"克隆"自己的能力.通过查看java API文档可知,Java语言本身具有克隆对