码迷,mamicode.com
首页 > 编程语言 > 详细

面向对象的JavaScript

时间:2016-11-08 01:54:57      阅读:165      评论:0      收藏:0      [点我收藏+]

标签:创建对象   plane   模拟   方式   turn   on()   function   对象   prot   

多态

多态背后的思想是将“做什么”和“谁去做,怎样去做”分离开来,也就是将“不变的事物”与“可变的事物”分离开来。

其最根本的作用就是通过把过程化的条件分支语句转化为对象的多态性,从而消除这些条件分支语句。

封装

目的是将信息隐藏。

封装数据:

js依赖变量的作用域来实现封装特性,而且只能模拟出public和private这两种特性

var myObject = (
	function () {
		var _name = "salody";  //私有(private)变量
		return {
			getName: function(){   //公开(public)方法
				return _name;
			}
		}
	})();

console.log(myObject.getName());   //输出:salody
console.log(myObject._name);         //输出:undefined

  

原型模式

      从设计模式的角度讲,原型模式是用于创建对象的一种模式,如果我们想要创建一个对象,一种方法是先指定它的类型,然后通过类来创建这个对象。原型模式选择了另外一种方式,我们不在关心对象的具体类型,而是找到一个对象,然后通过克隆来创建一个一模一样的对象。

  在ECMAScript5中提供了Object.create方法,可以用来克隆对象

  原型模式的真在目的在于提供了一种便捷的方式去创建某个类型的对象,克隆只是创建这个对象的过程和手段。

 1 var Plane = function () {
 2     this.blood = 100;
 3     this.attackLevel = 1;
 4     this.defenceLevel = 1;
 5 }
 6 
 7 var plane = new Plane();
 8 plane.blood = 500;
 9 plane.attackLevel = 10;
10 plane.defenceLevel = 3;
11 
12 var clonePlane = Object.create(plane);
13 console.log(clonePlane);
14 
15 //对于不支持Object.create方法的浏览器,用下面的代码
16 Object.create = Object.create || function (obj){
17     var F = function () {};
18     F.prototype = obj;
19 
20     return new F();
21 }

 

面向对象的JavaScript

标签:创建对象   plane   模拟   方式   turn   on()   function   对象   prot   

原文地址:http://www.cnblogs.com/salody/p/6041219.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!