Skip to content

Instantly share code, notes, and snippets.

@zD98
Created March 19, 2016 01:37
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save zD98/42519c9d4ba464693ee6 to your computer and use it in GitHub Desktop.
Save zD98/42519c9d4ba464693ee6 to your computer and use it in GitHub Desktop.
设计模式-原型模式

##Prototype模式 ###总结 在一个对象中定义一个函数, 它们都是由引用创建(所有子对象都指向相同的函数),而不是单独copy,提高了性能

###例子 eg 1. (规定)要求原型继承使用object.create

	var vechile= { 
		getModel:function () {}
	}
	var car = Object.create(vehicle,{
		id:"",
		model:""
	})
	差异化继承 即第一个参数是原型, 第二个参数初始化属性
2. 模拟
	var vechilePrototype = {}

	function vehicle(model){
		function F(){};
		F.prototype = vehiclePrototype;
	
		var f = new F();
		return f;
	}

	不可以修改只读属性, 因为会修改原型

###分析 1. 原型 更适合提供一系列函数和不可更改的只读属性 2. 原型 与 C++比较的话, 相当于实现了函数的(虚类)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment