javascript消除字符串两边空格的两种方式,面向对象和函数式编程

Posted 北风之神0509

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript消除字符串两边空格的两种方式,面向对象和函数式编程相关的知识,希望对你有一定的参考价值。

主要是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和弄全局变量。

 

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

 



以上是关于javascript消除字符串两边空格的两种方式,面向对象和函数式编程的主要内容,如果未能解决你的问题,请参考以下文章

python3字符串操作总结

(C++)string 的两种输入方式和输出方式

vim替换的两种方式

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

Javascript的基本语法

JavaScript函数的两种声明方式