Python语言里的method auto bind与JavaScript ES5显式function.bind语法

来源:互联网 发布:二六三网络通信 编辑:程序博客网 时间:2024/06/05 03:13

这个有意思的问题是最近发现的:

s = "   123abc    " #前后加点空格;m = s.strip #取实例对象的成员方法引用m() #调用,这里将返回"123abc"

下面是JavaScript代码:

var s = "   123abc   "undefinedvar m = s.trimundefinedm()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)undefinedm2()"123abc"

这个例子有助于理解JS里面this及ES5 bind的用法。