这个有意思的问题是最近发现的:
s = " 123abc " #前后加点空格;
m = s.strip #取实例对象的成员方法引用
m() #调用,这里将返回"123abc"
下面是JavaScript代码:
var s = " 123abc "
undefined
var m = s.trim
undefined
m()
VM807:1 Uncaught TypeError: String.prototype.trim called on null or undefined
at trim (<anonymous>)
at <anonymous>:1:1
JavaScript/ES5里需要这么做:
var m2 = s.trim.bind(s)
undefined
m2()
"123abc"
这个例子有助于理解JS里面this及ES5 bind的用法。