《javascript设计模式》学习笔记四,如何将面向对象改写为长尾词?
- 内容介绍
- 文章标签
- 相关推荐
本文共计926个文字,预计阅读时间需要4分钟。
本文实例讲述了JavaScript面向对象程序设计中的链式调用模式。分享给广大读者,仅供参考。
1. 链式调用:链式调用是面向对象编程中常用的一种模式,它允许在对象上连续调用多个方法,而每个方法调用都返回当前对象本身。以下是一个简单的例子:
javascriptfunction Person(name) { this.name=name;}
Person.prototype.sayHello=function() { console.log(Hello, my name is + this.name);};
Person.prototype.sayAge=function(age) { console.log(I am + age + years old.);};
var person=new Person(Alice);person.sayHello().sayAge(25);
在上面的例子中,`sayHello` 方法调用后返回 `person` 对象,然后可以继续调用 `sayAge` 方法。
2. jQuery链式调用:jQuery 是目前最流行的 JavaScript 框架之一,它也支持链式调用。以下是一个 jQuery 链式调用的例子:
javascript$(document).ready(function() { $(button).click(function() { $(this).css(background-color, red).fadeOut(1000); });});
在这个例子中,当按钮被点击时,它首先改变背景颜色为红色,然后逐渐淡出。
3. 总结:链式调用是一种提高代码可读性和可维护性的有效方法。在 JavaScript 面向对象编程中,合理运用链式调用可以使代码更加简洁、高效。
本文实例讲述了Javascript面向对象程序设计链式调用。分享给大家供大家参考,具体如下:
1.链式调用:
jquery可能是目前大家最常用到的js框架了,也习惯了如下的调用方式:
$('.someclass').show().css('xxx','xxxx').click(function(){}).xxx……
这种调用方式就叫做链式调用,也就是说在调用一个方法之后,可以使用方法的返回值来继续进行方法调用。
2.如何实现链式调用:
了解了什么是链式调用,我们再来看如何实现链式调用,从1中所述我们应该知道链式调用的关键在于方法的返回值,只要方法的返回值都是调用该方法的对象,那么,我们就可以实现链式调用了,我们仿照jquery,使用$作为对象的选择器:
(function(){ function _$(els){ this.elements = []; for(var i=0, len=els.length;i<len;i++){ var elements = els[i]; if(typeof element = ‘string'){ element = document.getElementByIdx_x_x(element); } } this.elements.push(element); } _$.prototype = { each:function(fn){ for(var i=0,len=this.elements.length;i<len;i++){ fn.call(this, this.elements[i]); } return this; }, setStyle: function(prop, val){ …… }, show:function(){ …… }, …… } window.$ = function(){ return new _$(arguments); } })();
上面的代码就实现了一个简单的链式调用对象,并且使用一个_$作为$的别名,以防止$被其他代码改写而导致整个对象的定义丢失。
附:一个简单链式调用示例:
/* map() items 遍历的数组的每一项 */ var arr = [1,2,3]; var num = arr.map(function(items){ return items + 1; }); console.log(num);//[2,3,4 var arr = [1,2,3]; var num = arr.map(function (items) { return items+1; }).reduce(function (a,b) {//[2,3,4].reduce() return a+b; }) console.log(num);//0 --- 2+3+4 = 9] /* reduce 实现数组里的每个数相加,也就是给数组的每一项求总和 reduce(function(a,b){ return a+b; },a)--a的初始值 */ var arr = [1,2,3]; var num_1 = arr.reduce(function (a,b) { return a+b; }) console.log(num_1);//6 /* 链式调用 一个链子接一个链子 */ var arr = [1,2,3]; var num = arr.map(function (items) { return items+1; }).reduce(function (a,b) {//[2,3,4].reduce() return a+b; }) console.log(num);//0 --- 2+3+4 = 9
感兴趣的朋友可以使用在线HTML/CSS/JavaScript代码运行工具:tools.jb51.net/code/HtmlJsRun测试上述代码运行效果。
更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《javascript面向对象入门教程》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结》
希望本文所述对大家JavaScript程序设计有所帮助。
本文共计926个文字,预计阅读时间需要4分钟。
本文实例讲述了JavaScript面向对象程序设计中的链式调用模式。分享给广大读者,仅供参考。
1. 链式调用:链式调用是面向对象编程中常用的一种模式,它允许在对象上连续调用多个方法,而每个方法调用都返回当前对象本身。以下是一个简单的例子:
javascriptfunction Person(name) { this.name=name;}
Person.prototype.sayHello=function() { console.log(Hello, my name is + this.name);};
Person.prototype.sayAge=function(age) { console.log(I am + age + years old.);};
var person=new Person(Alice);person.sayHello().sayAge(25);
在上面的例子中,`sayHello` 方法调用后返回 `person` 对象,然后可以继续调用 `sayAge` 方法。
2. jQuery链式调用:jQuery 是目前最流行的 JavaScript 框架之一,它也支持链式调用。以下是一个 jQuery 链式调用的例子:
javascript$(document).ready(function() { $(button).click(function() { $(this).css(background-color, red).fadeOut(1000); });});
在这个例子中,当按钮被点击时,它首先改变背景颜色为红色,然后逐渐淡出。
3. 总结:链式调用是一种提高代码可读性和可维护性的有效方法。在 JavaScript 面向对象编程中,合理运用链式调用可以使代码更加简洁、高效。
本文实例讲述了Javascript面向对象程序设计链式调用。分享给大家供大家参考,具体如下:
1.链式调用:
jquery可能是目前大家最常用到的js框架了,也习惯了如下的调用方式:
$('.someclass').show().css('xxx','xxxx').click(function(){}).xxx……
这种调用方式就叫做链式调用,也就是说在调用一个方法之后,可以使用方法的返回值来继续进行方法调用。
2.如何实现链式调用:
了解了什么是链式调用,我们再来看如何实现链式调用,从1中所述我们应该知道链式调用的关键在于方法的返回值,只要方法的返回值都是调用该方法的对象,那么,我们就可以实现链式调用了,我们仿照jquery,使用$作为对象的选择器:
(function(){ function _$(els){ this.elements = []; for(var i=0, len=els.length;i<len;i++){ var elements = els[i]; if(typeof element = ‘string'){ element = document.getElementByIdx_x_x(element); } } this.elements.push(element); } _$.prototype = { each:function(fn){ for(var i=0,len=this.elements.length;i<len;i++){ fn.call(this, this.elements[i]); } return this; }, setStyle: function(prop, val){ …… }, show:function(){ …… }, …… } window.$ = function(){ return new _$(arguments); } })();
上面的代码就实现了一个简单的链式调用对象,并且使用一个_$作为$的别名,以防止$被其他代码改写而导致整个对象的定义丢失。
附:一个简单链式调用示例:
/* map() items 遍历的数组的每一项 */ var arr = [1,2,3]; var num = arr.map(function(items){ return items + 1; }); console.log(num);//[2,3,4 var arr = [1,2,3]; var num = arr.map(function (items) { return items+1; }).reduce(function (a,b) {//[2,3,4].reduce() return a+b; }) console.log(num);//0 --- 2+3+4 = 9] /* reduce 实现数组里的每个数相加,也就是给数组的每一项求总和 reduce(function(a,b){ return a+b; },a)--a的初始值 */ var arr = [1,2,3]; var num_1 = arr.reduce(function (a,b) { return a+b; }) console.log(num_1);//6 /* 链式调用 一个链子接一个链子 */ var arr = [1,2,3]; var num = arr.map(function (items) { return items+1; }).reduce(function (a,b) {//[2,3,4].reduce() return a+b; }) console.log(num);//0 --- 2+3+4 = 9
感兴趣的朋友可以使用在线HTML/CSS/JavaScript代码运行工具:tools.jb51.net/code/HtmlJsRun测试上述代码运行效果。
更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《javascript面向对象入门教程》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结》
希望本文所述对大家JavaScript程序设计有所帮助。

