1. 程式人生 > >javascript消除字符串兩邊空格的兩種方式,面向對象和函數式編程

javascript消除字符串兩邊空格的兩種方式,面向對象和函數式編程

xxx 字符 name tco 由於 pre 字符串 對象實例 ()

主要是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消除字符串兩邊空格的兩種方式,面向對象和函數式編程