企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
## 问题 Problem 你想检测一个函数是否存在,如果不存在就创建这个函数(例如在Internet Explorer 8中的ECMAScript 5函数)。 You want to detect if a function exists and create it if it does not (such as an ECMAScript 5 function in Internet Explorer 8). ## 方案 Solution 使用`::`来检测这个函数,如果不存在就赋值上这个函数。 Use `::` to detect the function, and assign to it if it does not exist. ~~~ unless Array::filter Array::filter = (callback) -> element for element in this when callback element array = [1..10] array.filter (x) -> x > 5 # => [6,7,8,9,10] ~~~ ## 讨论 Discussion 在JavaScript中(在CoffeeScript也一样),对象有一个原型成员,定义了那些以此为原型的对象所有可用的成员方法。在CoffeeScript中,你可以使用`::`操作符来直接访问原型。 Objects in JavaScript (and thus, in CoffeeScript) have a prototype member that defines what member functions should be available on all objects based on that prototype. In CoffeeScript, you can access the prototype directly via the `::` operator.