主要是javascript中消除字符串空格,比较两种方式的不同

//面向对象,消除字符串两边空格
String.prototype.trim = function()
{
return this.replace(/(^\s*)|(\s*$)/g, "");
}; //去左右空格的函数;
function trim(s){
return s.replace(/(^\s*)|(\s*$)/g, "");
}
调用消除空格的两种方式。
var defualtPhone = defualtDeliveryArray[0].getElementsByTagName("td")[4].textContent.trim();

var defualtPhone = trim(defualtDeliveryArray[0].getElementsByTagName("td")[4].textContent);
就是'  abcd  '.tirm()和trim('  abcd   ')的区别。
由于现在编程的都是智能编辑器,在使用面向对象的时候方法作为对象的一个属性,在对象的命名空间下,很容易自动补全弹出来。

面向对象把某些方法几种赋予给某一类的对象,无论在调用还是编辑器自动补全的时候优点太多了。

在python中,函数式编程和oop编程调用的区别是,假如有两种类型

对object1类型的东西,需要传给两个函数处理。;

def fun1a(object1,*args,**kwargs):

pass

def fun1b(object1,*args,**kwargs):

pass

对object2类型的东西,需要传给两个函数处理。;

def fun2a(object2,*args,**kwargs):

pass

def fun2b(object2,*args,**kwargs):

pass

调用的时候,使用 fun1a(object1,*args,**kwargs)  fun1b(object1,*args,**kwargs)   , fun2a(object2,*args,**kwargs)  fun2b(object2,*args,**kwargs)

传函数的时候一定不要传错了,不能把object2类型的传给fun1a 和fun1b这两个函数处理,会出错。

面向对象的时候,调用方式是:

a = A(*args,**kwargs)

a.fun1()

a.fun2()

b = B(*args,**kwargs)

b.fun3()

b.fun4()

b.fun5()

从调用来看,方法越多,面向对象实例化后可以少传一些参数的次数。面向过程时候,如果fun4需要利用fun3的处理结果,还需要在fun3中各种return,同理还有fun6 fun7什么的,各种return不太好。为了保持多个函数处理同一个变量,还不得不使用一些global全局变量。

当使用面向对象时候,由于编辑器有智能补全功能,肯定不会出现b.fun1()这种乱调用的低级错误了,在获取结果的时候,可以使用object2.xxx的方式获得,不用到处去return和弄全局变量。

python里面的内置类型的方法,如果都改成由函数来处理,每个类型几十种方法,那我们需要记住几百种常见函数,记住什么函数能处理什么类型的对象,脑袋简直要爆炸了。但是调用方法就简单了,对象后面打个.号,就能自动显示出对象有哪些属性,有哪些方法,这些不用记得很清楚就行。python中只有一些很少的函数是各种对象通用的,比如字符串长度 列表长度 集合长度,统一传给len()函数就能得出结果了,也可以使用str1.__len__()和list1.__len()__这种方式得出长度结果。

oop的优点不仅是从代码组织上,更体现在调用上。那么多第三方库在调用时候能用的那么爽,那是三方库中用了大量oop,如果人家全用函数,在调用时候,体验会大幅下降不爽。

此篇仅从js和py中的函数/方法调用形式,来浅显说明oop的优点。

javascript消除字符串两边空格的两种方式,面向对象和函数式编程。python oop在调用时候的优点的更多相关文章

  1. JavaScript去除字符串两边空格trim

    去除字符串左右两端的空格,在大部分编程语言中,比如PHP.vbscript里面可以轻松地使用 trim.ltrim 或 rtrim实现.但在js中却没有这3个内置方法,需要手工编写.下面的实现方法是用 ...

  2. Javascript 去掉字符串前后空格的五种方法

    第一种:循环检查替换 [javascript] //供使用者调用 function trim(s){ return trimRight(trimLeft(s)); } //去掉左边的空白 functi ...

  3. JavaScript 通过prototype改变原型的两种方式

    // -------------------- prototype 1 -------------------- function A(){} A.prototype.n = 1 let b = ne ...

  4. Android ScrollView监听滑动到顶部和底部的两种方式(你可能不知道的细节)

    Android ScrollView监听滑动到顶部和底部,虽然网上很多资料都有说,但是不全,而且有些细节没说清楚 使用场景: 1. 做一些复杂动画的时候,需要动态判断当前的ScrollView是否滚动 ...

  5. Python字符串的两种方式——百分号方式,format的方式

    Python的字符串格式化有两种方式: 百分号方式.format方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存.[PEP-3101] This ...

  6. spring接收json字符串的两种方式

    一.前言 前几天遇到一个问题,前端H5调用我的springboot一个接口(post方式,@RequestParameter接收参数),传入的参数接收不到.自己测试接口时使用postman的form- ...

  7. VS Code - Debugger for Chrome调试JavaScript的两种方式

    VS Code - Debugger for Chrome调试JavaScript的两种方式 最近由于出差的缘故,博客写的不是很多,一直想写一篇VS Code - Debugger for Chrom ...

  8. javascript文件夹选择框的两种解决方案

    javascript文件夹选择框的两种解决方案 解决方案1:调用windows 的shell,但会有安全问题. * browseFolder.js * 该文件定义了BrowseFolder()函数,它 ...

  9. JavaScript对象属性访问的两种方式

    JavaScript对象属性访问的两种方式 object.attribute object["attribute"] 例如: var employees = [ { "f ...

随机推荐

  1. Linux 系统内核空间与用户空间通信的实现与分析-NETLINK (转载)

    Linux中的进程间通信机制源自于Unix平台上的进程通信机制.Unix的两大分支AT&T Unix和BSD Unix在进程通信实现机制上的各有所不同,前者形成了运行在单个计算机上的Syste ...

  2. Redis初步认识

    官网:redis.io Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API.从2010年3月15日起,Redis的 ...

  3. Intellij Idea搭建Spark开发环境

    在Spark高速入门指南 – Spark安装与基础使用中介绍了Spark的安装与配置.在那里还介绍了使用spark-submit提交应用.只是不能使用vim来开发Spark应用.放着IDE的方便不用. ...

  4. IDEA初始化配置

    1.配置git 2.配置JDK[Configure-->Oroject Defaults-->Project Structure] 3.配置maven

  5. HashTable和HashMap的区别详解

    一.HashMap简介 HashMap是基于哈希表实现的,每一个元素是一个key-value对,其内部通过单链表解决冲突问题,容量不足(超过了阀值)时,同样会自动增长. HashMap是非线程安全的, ...

  6. [转]Idea2016 使用Maven配置简单Web项目(受益比较多的一篇)

    最近被同事一直吵着用Idea写Java,于是偷偷的去试用了一下Idea.确实不错,无论界面还是智能提醒都是蛮符合我的使用习惯,但是刚从Eclipse出来,使用Idea还是不太习惯的.所以这里写出来,供 ...

  7. (笔记)AES加密在线计算工具

    AES加密在线计算工具: http://aes.online-domain-tools.com/

  8. (笔记)Mysql命令show databases:显示所有数据库

    show databases命令用于显示所有数据库. show databases命令格式:show databases; (注意:最后有个s) 例如:mysql> show databases ...

  9. qualcomm qact 使用记录

    使用QACT调试音频,首先安装QPST,并安装对应的usb驱动,如果驱动没有安装好,有驱动精灵等软件进行安装. QPST configure中选择对应的设备. 在线调试 打开QACT,选择" ...

  10. Windows 自带的截屏功能

    有时没登陆QQ,又急需截图,系统自带的截图功能就可以派上用场了. 1.按下键盘上的Print Screen 按钮 2.打开系统自带的画图工具,点击粘贴就可以了.