javascript消除字符串两边空格的两种方式,面向对象和函数式编程。python oop在调用时候的优点...
主要是javascript中消除字符串空格,比較兩種方式的不同
//面向?qū)ο?#xff0c;消除字符串兩邊空格 String.prototype.trim = function() { return this.replace(/(^\s*)|(\s*$)/g, ""); };//去左右空格的函數(shù); function trim(s){return s.replace(/(^\s*)|(\s*$)/g, ""); }調(diào)用消除空格的兩種方式。 var defualtPhone = defualtDeliveryArray[0].getElementsByTagName("td")[4].textContent.trim(); var defualtPhone = trim(defualtDeliveryArray[0].getElementsByTagName("td")[4].textContent); 就是' abcd '.tirm()和trim(' abcd ')的區(qū)別。
由于現(xiàn)在編程的都是智能編輯器,在使用面向?qū)ο蟮臅r候方法作為對象的一個屬性,在對象的命名空間下,很容易自動補全彈出來。
?
面向?qū)ο蟀涯承┓椒◣追N賦予給某一類的對象,無論在調(diào)用還是編輯器自動補全的時候優(yōu)點太多了。
?
在python中,函數(shù)式編程和oop編程調(diào)用的區(qū)別是,假如有兩種類型
?
對object1類型的東西,需要傳給兩個函數(shù)處理。;
def fun1a(object1,*args,**kwargs):
? ? ? pass
?
def fun1b(object1,*args,**kwargs):
? ? ? ?pass
?
對object2類型的東西,需要傳給兩個函數(shù)處理。;
def fun2a(object2,*args,**kwargs):
? ? ? pass
?
def fun2b(object2,*args,**kwargs):
? ? ? ?pass
?
?
調(diào)用的時候,使用?fun1a(object1,*args,**kwargs) ?fun1b(object1,*args,**kwargs) ? ,?fun2a(object2,*args,**kwargs) ?fun2b(object2,*args,**kwargs) ??
傳函數(shù)的時候一定不要傳錯了,不能把object2類型的傳給fun1a 和fun1b這兩個函數(shù)處理,會出錯。
?
?
面向?qū)ο蟮臅r候,調(diào)用方式是:
a = A(*args,**kwargs)
a.fun1()
a.fun2()
?
b = B(*args,**kwargs)
b.fun3()
b.fun4()
b.fun5()
?
從調(diào)用來看,方法越多,面向?qū)ο髮嵗罂梢陨賯饕恍﹨?shù)的次數(shù)。面向過程時候,如果fun4需要利用fun3的處理結(jié)果,還需要在fun3中各種return,同理還有fun6 fun7什么的,各種return不太好。為了保持多個函數(shù)處理同一個變量,還不得不使用一些global全局變量。
當使用面向?qū)ο髸r候,由于編輯器有智能補全功能,肯定不會出現(xiàn)b.fun1()這種亂調(diào)用的低級錯誤了,在獲取結(jié)果的時候,可以使用object2.xxx的方式獲得,不用到處去return和弄全局變量。
?
python里面的內(nèi)置類型的方法,如果都改成由函數(shù)來處理,每個類型幾十種方法,那我們需要記住幾百種常見函數(shù),記住什么函數(shù)能處理什么類型的對象,腦袋簡直要爆炸了。但是調(diào)用方法就簡單了,對象后面打個.號,就能自動顯示出對象有哪些屬性,有哪些方法,這些不用記得很清楚就行。python中只有一些很少的函數(shù)是各種對象通用的,比如字符串長度 列表長度 集合長度,統(tǒng)一傳給len()函數(shù)就能得出結(jié)果了,也可以使用str1.__len__()和list1.__len()__這種方式得出長度結(jié)果。
?
oop的優(yōu)點不僅是從代碼組織上,更體現(xiàn)在調(diào)用上。那么多第三方庫在調(diào)用時候能用的那么爽,那是三方庫中用了大量oop,如果人家全用函數(shù),在調(diào)用時候,體驗會大幅下降不爽。
?
此篇僅從js和py中的函數(shù)/方法調(diào)用形式,來淺顯說明oop的優(yōu)點。
?
總結(jié)
以上是生活随笔為你收集整理的javascript消除字符串两边空格的两种方式,面向对象和函数式编程。python oop在调用时候的优点...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 做梦梦到自己拔牙是什么意思
- 下一篇: Python之集合、解析式,生成器,函数