JavaScript面向对象(极简主义法minimalist approach)_js面向对象

极简主义法
  荷兰程序员 Gabor de Mooij 提出了一种比 Object.create ()更好的新方法,他称这种方法为"极简主义法"(minimalist approach)。这也是我推荐的方法。
  3. 1 封装
  这种方法不使用 this 和 prototype,代码部署起来非常简单,这大概也是它被叫做"极简主义法"的原因。
  首先,它也是用一个对象模拟"类"。在这个类里面,定义一个构造函数 createNew (),用来生成实例。

复制代码 代码如下:

var Cat = {
createNew: function (){
// some code here
}
};

  然后,在 createNew ()里面,定义一个实例对象,把这个实例对象作为返回值。

复制代码 代码如下:

var Cat = {
createNew: function (){
var cat = {};
cat.name = "大毛";
cat.makeSound = function (){ alert ("喵喵喵"); };
return cat;
}
};

  使用的时候,调用 createNew ()方法,就可以得到实例对象。

复制代码 代码如下:

var cat1 = Cat.createNew ();
cat1.makeSound (); // 喵喵喵

  这种方法的好处是,容易理解,结构清晰优雅,符合传统的"面向对象编程"的构造,因此可以方便地部署下面的特性。
  3. 2 继承
  让一个类继承另一个类,实现起来很方便。只要在前者的 createNew ()方法中,调用后者的 createNew ()方法即可。
  先定义一个 Animal 类。

复制代码 代码如下:

var Animal = {
createNew: function (){
var animal = {};
animal.sleep = function (){ alert ("睡懒觉"); };
return animal;
}
};

  然后,在 Cat 的 createNew ()方法中,调用 Animal 的 createNew ()方法。

复制代码 代码如下:

var Cat = {
createNew: function (){
var cat = Animal.createNew ();
cat.name = "大毛";
cat.makeSound = function (){ alert ("喵喵喵"); };
return cat;
}
};

  这样得到的 Cat 实例,就会同时继承 Cat 类和 Animal 类。

复制代码 代码如下:

var cat1 = Cat.createNew ();
cat1.sleep (); // 睡懒觉

  3. 3 私有属性和私有方法
  在 createNew ()方法中,只要不是定义在 cat 对象上的方法和属性,都是私有的。

复制代码 代码如下:

var Cat = {
createNew: function (){
var cat = {};
var sound = "喵喵喵";
cat.makeSound = function (){ alert (sound); };
return cat;
}
};

  上例的内部变量 sound,外部无法读取,只有通过 cat 的公有方法 makeSound ()来读取。

复制代码 代码如下:

var cat1 = Cat.createNew ();
alert (cat1.sound); // undefined

  3. 4 数据共享
  有时候,我们需要所有实例对象,能够读写同一项内部数据。这个时候,只要把这个内部数据,封装在类对象的里面、createNew ()方法的外面即可。

复制代码 代码如下:

var Cat = {
sound : "喵喵喵",
createNew: function (){
var cat = {};
cat.makeSound = function (){ alert (Cat.sound); };
cat.changeSound = function (x){ Cat.sound = x; };
return cat;
}
};

  然后,生成两个实例对象:

复制代码 代码如下:

var cat1 = Cat.createNew ();
var cat2 = Cat.createNew ();
cat1.makeSound (); // 喵喵喵

  这时,如果有一个实例对象,修改了共享的数据,另一个实例对象也会受到影响。

复制代码 代码如下:

cat2.changeSound ("啦啦啦");
cat1.makeSound (); // 啦啦啦

时间: 2024-09-27 23:32:16

JavaScript面向对象(极简主义法minimalist approach)_js面向对象的相关文章

js分解url参数(面向对象-极简主义法应用)_javascript技巧

修改前: 复制代码 代码如下: <script type="text/javascript"> var url="www.taobao.com?key0=a&key1=b&key2=c"; function parseQueryString(url){ var str=url.split("?")[1], items=str.split("&"); var arr,name,value; f

网页设计中到底什么是极简主义?

  当提到网页设计趋势的时候,不管什么文章都得来一句:"现在特别流行极简主义设计",那么,到底什么是极简主义?极简主义不光存在于网页设计中,像Logo设计.印刷设计.包装设计也都有相应的极简主义风格.目前流行的极简主义网页设计视觉风格是:使用纯粹的色彩以及简练唯美的照片. 极简主义网页设计流行使用创新式导航,不但易用,而且有种简约美,符合极简主义"回归功能"与"视觉简约"的双重理念.简约的外观.易用的功能,并不意味着极简主义网页设计很简单.事实上

WEBJX收集清新美丽的极简主义风格网站设计实例

文章描述:40个清新美丽的极简主义风格网站. 如果一个页面有太多的元素,浏览者将迷惑于去看哪里或误解每个元素的优先级,而一个极简主义设计将焦点正好放到正确的内容上.越来越多的网站喜欢采用简单的风格来设计自己的页面,但想要做到理想的极简主义风格并非想象中这么容易,这里就列出了40个清新美丽的极简主义风格网站,以供设计者参考借鉴. 1. Co:collective 2. Couch Creative 3. Upperdog 4. Skinny Ships 5. Decorated Playlists

研究极简主义设计:简化您的设计

文章描述:[译]简约主义设计:少就是多. 本文翻译自老外的一篇文章(原文),但并不是完全的直译,文章中加入了我的一些经验与想法: 作为设计师的我们,都知道一个简约的设计可以创造出很美观的结果.然而,在真正去做的时候许多设计师都会遇到麻烦,在用相当少的元素去设计一个页面时,感觉相当的困难,结果都会觉得这个页面看上去像没完成的.网上有许多关于极简主义设计的文章可以去帮助你去实现效果,但却不是仅有的办法.现在,我会举一些关于极简主义设计的例子,大家可以去分析为什么有些能起作用有些却不能. 什么是简约的

极简主义网站设计:白色极简主义网站设计

文章描述:国外35个极简主义网站设计. 原文:国外35个极简主义网站设计译自:35 Effective Examples of Minimalism in Web Design请尊重版权,转载请注明来源,多谢! 极简主义的网站设计是我的最爱,之前网页教学网也有分享过很多极简主义的网站设计,这里是一批由speckyboy.com收集的另一批很赞的极简主义网站设计,供大家参考吧-- 白色极简主义网站设计 Idea Exhibit Yuna Kim Astronaut Deutsche & Japan

极简主义设计:不错的html电子名片设计

html的电子名片是一种包含着精确信息的极简主义设计,它包含的内容(大多数情况下)只有作品集,社会化连接和联系方式.这种类型的网站大都是针对于个人的.下面,我们收集了15个非常不错的html电子名片设计,点击图片可以进入到原始站点. Tim van Damme Rogie King Jan van Lysebettens Mike Jolley Lji Jinaraj

极简主义网站设计的首选色彩:灰色

在这个系列中,我们差不多了解了彩虹中的每一种颜色及其在设计中的应用.在这篇中,我们将讨论一下七彩之外的色彩,让我们看一下灰色.灰色是一个平稳的.中立的色彩,它在网页设计中非常漂亮.它不会激发非常强烈的情感(或许除了一种不好的心情),而红色.橙色或者紫色则会.它不像黑色那么鲜明,但是一个非常暗的灰色可以做同样的事情.同样非常浅的灰色又不像白色那么死板,而且有的时候它还可以填补白色占据的空间. 灰色有正面和负面的含义."灰质(Gray matter)"会联系到智商与脑力.不过好像灰色的贬义

网页设计参考:极简主义充满创意的网页设计实例

只有一个网页的网站是伟大的,这些网站直接考验设计师的个人能力,将所有需要表达的信息集中在一个网页中,除了如何排版布局外,也能以更夸张的形式展示网站的中心思想. 同时在另一层面,单页面的网站也能极大提高用户兴趣和关注,在这里你会看到一些五颜六色的网站,极简主义的和充满创意的.而且你也将有更多机会与访问这个页面的其他人发生互动...那么就随着本文看下这些十分简约且有创意的单页面网站吧 The Great Bearded Reef Mogulista BULLET PR Legwork Studio

3大速成法则帮你轻松搞定极简主义网站

  今天@念经的大猕猴桃 这篇译文特别不错,对于没有经验,想借鉴他人的设计师,如果没有强大的归纳能力,阅遍极简也枉然.恰好这篇文章把极简主义必备/抛弃的元素,可以运用的技巧,如何与其他风格结合这几个关键点都说得非常仔细,怒马不多说! 如今极简设计已普遍被应用于网页设计中,当然这拥有充分理由.轻量级的布局和低维修成本使其灵活适用于响应式设计.自然优雅极具美感,使得很多品牌和机构青睐并采用.然而赞赏这一设计风格和创造它是两码事. 看起来,由于极简主义元素不多,复制某种风格似乎变的及其容易.然而事实却