《JavaScript设计模式》——1.11 换一种方式使用方法

1.11 换一种方式使用方法

“可是在你测试的时候,你用的是函数式调用方式?对于习惯于类式调用方式的同学来说,他们可以这样简单更改一下。”

Function.prototype.addMethod = function(name, fn){
  this.prototype[name] = fn;
}

“此时我们还按照上一种方式添加方法。”

var Methods = function(){};
methods.addMethod('checkName', function(){
  // 验证姓名
}).addMethod('checkEmail', function(){
  // 验证邮箱
});

“但是我们在使用的时候要注意了,不能直接使用,要通过new关键字来创建新对象了。”

var m = new Methods();
m.checkEmail()

小白兴奋地看着这一行行的代码情不自禁地叫了一声“这正是一种艺术”。

小铭笑着说:“JavaScript是一种灵活的语言,当然函数在其中扮演着一等公民。所以使用JavaScript,你可以编写出更多优雅的艺术代码。”
忆之获
小白工作第一天的故事结束,通过对小白与小铭对函数的多样化创建与使用,我们对JavaScript这门语言有了新的认识,“灵活性”是这门语言特有的气质,不同的人可以写出不同风格的代码,这是JavaScript给予我们的财富,不过我们要在团队开发中慎重挥霍,尽量保证团队开发代码风格的一致性,这也是团队代码易开发、可维护以及代码规范的必然要求。

我问你答
真假对象一节中如何实现方法的链式调用呢?

试着定义一个可以为函数添加多个方法的addMethod方法。

试着定义一个既可为函数原型添加方法又可为其自身添加方法的addMethod方法。

时间: 2024-09-21 11:24:35

《JavaScript设计模式》——1.11 换一种方式使用方法的相关文章

JavaScript中实现继承的三种方式和实例_javascript技巧

javascript虽然是一门面向对象的语言,但是它的继承机制从一开始设计的时候就不同于传统的其他面向对象语言,是基于原型的继承机制,但是在这种机制下,继承依然有一些不同的实现方式. 方法一:类式继承 所谓的类式继承就是指模仿传统面向对象语言的继承方式,继承与被继承的双方都是"类",代码如下: 首先定义一个父类(或超类): function Person(name){ this.name=name; } Person.prototype.getName=function(){ retu

JavaScript创建类/对象的几种方式概述及实例_javascript技巧

在JS中,创建对象(Create Object)并不完全是我们时常说的创建类对象,JS中的对象强调的是一种复合类型,JS中创建对象及对对象的访问是极其灵活的. JS对象是一种复合类型,它允许你通过变量名存储和访问,换一种思路,对象是一个无序的属性集合,集合中的每一项都由名称和值组成(听起来是不是很像我们常听说的HASH表.字典.健/值对?),而其中的值类型可能是内置类型(如number,string),也可能是对象. 一.由一对大括号括起来 复制代码 代码如下: var emptyObj = {

JavaScript中绑定事件的三种方式及去除绑定_javascript技巧

在JavaScript中,有三种常用的绑定事件的方法 第一种办法 函数写在结构层里面 非常不好,使页面很混乱,行为与结构得不到分离 <input type="button" onclick="func();"> 绑定事件的第二种办法 好处:行为与结构开始分离 缺点: 第二种绑定方式中只能给一个时间绑定一个处理函数 即.onclick = fn1;  .  onclick = fn2 最终的效果是onclick = fn2 <select name=

学习javascript面向对象 掌握创建对象的9种方式_javascript技巧

本文为大家分享了javascript创建对象的9种方式,供大家参考,具体内容如下 [1]使用Object构造函数 [缺点]使用同一个接口创建很多对象,会产生大量重复代码 var person = new Object(); person.name = "Nicholas"; person.age = 29; person.job = "Software Engineer"; person.sayName = function(){ alert(this.name);

javascript解析json数据的3种方式_javascript技巧

3种方式解析json数据 复制代码 代码如下: var obj=eval("("+traItem.rel+")"); //性能不好 var obj = (new Function("return " + traItem.rel))(); var obj = JSON.parse(traItem.rel); //这个要求的格式比较严格

JavaScript弹出对话框的三种方式_javascript技巧

学习过js的小伙伴会发现,我们在一些实例中用到了alert()方法.prompt()方法.prompt()方法,他们都是在屏幕上弹出一个对话框,并且在上面显示括号内的内容,使用这种方法使得页面的交互性更精彩,实际上我们经常会在进行网页浏览时简单这种类型的对话框,在用户与应用程序进行双向交流时,经常要用到对话框. javascript的三种对话框是通过调用window对象的三个方法alert(),confirm()和prompt()来获得,可以利用这些对话框来完成js的输入和输出,实现与用户能进行

javascript获取表单值的7种方式

见代码: <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>表单对象--获取表单值的7种方式</title> </head> <body> <form action="" name="myform"> <input type=

《JavaScript设计模式》——11.4 JSONP

11.4 JSONP "第二种代理对象形式是通过script标签.比如我们在CDN(内容分发网络,一种更接近用户的网络架构,是用户可以就近获取内容)上更快速地获取,然而这种获取方式获取的script内容是不变的.而我们需要的代理对象,是对页面与浏览器间通信的,显然上面的方式还不能满足我们的需求,不过我们知道通过src属性可实现get请求,因此我们可以在src指向的url(请求地址)上面添加一些字段信息,然后服务器端获取这些字段,再相应地生成一份内容." // 前端浏览器页面 <s

《JavaScript设计模式》——11.5 代理模板

11.5 代理模板 "当然,这种方式还要求其他域要有一定可靠性.否则将会攻击到你的网站.当然这种方式也被人称之为JSONP方案,有时我们还会通过一个方法来动态生成需要的JSONP中的< script >标签".小铭接着说,"与之类似的还有另外一种方案是被称之为代理模板的方案,他的解决思路是这样的,既然不同域之间相互调用对方的页面是有限制的,那么自己域中的两个页面相互之间的调用是可以的,即代理页面B调用被代理的页面A中对象的方式是可以的.那么要实现这种方式我们只需要