原型模式

jS四种函数的调用方式

[亡魂溺海] 提交于 2019-11-26 01:53:44
6- js 函数的四种调用方式 2016年11月04日 13:41:54 阅读数:7559 函数的四种调用方式 函数有下列调用模式 函数调用模式 方法调用模式 构造器模式 上下文模式 函数调用 模式 要调用,就肯定要先定义,函数的定义方式: 声明式: function fuc() {} 表达式式: var func = function() {}; Function: new Function( ‘参数’,…,’函数体’ ); 单独独立调用的,就是函数调用模式,即 函数名( 参数 ),不能加任何其他的东西, 对象 o.fuc() 就不是了。 在函数调用模式中, this 表示全局对象 window 任何自调用函数都是函数模式。 方法调用 模式 method 所谓方法调用,就是用对象的方法调用。方法是什么,方法本身就是函数,但是,方法不是单独独立的,而是要通过一个对象引导来调用。 就是说方法对象一定要有宿主对象。 即 对象.方法(参数) this表示引导方法的对象,就是指宿主对象 对比-函数调用模式: 方法调用模式是不是独立的,需要宿主,而函数调用模式是独立的 方法调用模式方式:obj.fuc(); 函数调用模式方式: fuc(); 方法调用模式中,this指宿主。而函数调用模式中 this 指 全局对象window 美团的一道面试题 var length = 10;

原型模式

我们两清 提交于 2019-11-26 00:44:12
1.原型模式:对已有对象进行拷贝,降低消耗。 将对象A拷贝为对象A1、A2.。。。 2.浅拷贝:引用地址不变。(*String是常量,存放在常量区) package Creating.pratice2; public class ProtoType { public static void main(String[] args) { Tree tree = new Tree(); tree.setBranch("主干"); tree.setLeaf("好多"); BridNest bridNest = new BridNest(); bridNest.setKind("big"); tree.setBridNest(bridNest); Tree treeC1 = tree.clone(); System.out.println(treeC1.getBranch()); tree.setYear(3); tree.setLeaf("多极了"); System.out.println(treeC1.getYear()); System.out.println(tree.getYear()); System.out.println(tree.getLeaf()); System.out.println(treeC1.getLeaf()); System.out.println(tree

js中创建对象方式----原型模式

余生长醉 提交于 2019-11-25 22:26:53
一、什么是原型模式 在js中,创建对象的方式有工厂模式和构造函数模式等; 而构造函数模式最大的问题在于:构造函数中的每个方法都需要在实例对象中重新创建一遍,不能复用,所以为了解决这一个问题,就需要使用原型模式来创建对象。 原型模式是把所有实例共享的方法和属性放在一个叫做prototype(原型)的属性中 ,在创建一个函数时都会有个prototype属性, 这个属性是一个指针,指向一个对象,是通过调用构造函数而创建的那个对象实例的 原型对象 。 // 构造函数 function Person() {}; // 原型属性prototype Person.prototype.name = '张三'; Person.prototype.sayName = function() { console.log(this.name); }; let person1 = new Person(); person1.sayName(); //张三 let person2 = new Person(); person2.sayName(); // 张三 console.log(person1.sayName == person2.sayName); //true 理解原型对象 无论什么时候,只要创建了一个新函数,就会根据一组特定的规则为该函数创建一个prototype属性,这个属性 指向函数的原型对象

原型模式

浪子不回头ぞ 提交于 2019-11-25 18:50:11
文章目录 模式介绍 浅克隆与深克隆 业务场景 代码实现 模式介绍 原型模式是一种对象创建型模式,采用复制对象的方法来创建对象的实例。 浅克隆与深克隆 浅克隆: 克隆出来的对象实例一模一样,对象的属性如果是引用数据类型,那么他么指向同一个地址值。无论是修改原来的对象,还是修改克隆出来的对象,只要是引用数据类型修改了,那么两个对象同时被修改,因为他们共享同一地址值。 深克隆: 克隆出来的对象实例也是一模一样的,但是他们的引用属性也被克隆了,两个对象虽然一模一样,但是没有任何关联。修改其中一个对象,不影响另一个对象。 业务场景 以一个在线商城系统中的订单对象为例,一个订单的创建过程往往是很复杂的,这里我们列举几个基本类型的属性和引用类型的属性,来克隆订单对象,看看最终实现的效果。 代码实现 创建订单类,并实现Cloneable接口: public class Order implements Cloneable { private String name ; private int price ; private String address ; public String getName ( ) { return name ; } public void setName ( String name ) { this . name = name ; } public int