我试图了解如何使用咖啡脚本创建私有方法。以下是示例代码
class builders
constructor: ->
// private method
call = =>
@priv2Method()
// privileged method
privLedgeMethod: =>
call()
// privileged method
priv2Method: =>
console.log("got it")
以下是生成的 JS 代码。
(功能() { var建设者, __bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; }; 建设者=(函数(){ var 调用, _这=这; 功能建设者(){ this.priv2Method = __bind(this.priv2Method, this); this.privLedgeMethod = __bind(this.privLedgeMethod, this); } 调用 = 函数() { 返回builders.priv2Method(); }; builders.prototype.privLedgeMethod = function() { 返回调用(); }; builders.prototype.priv2Method = function() { return console.log("知道了"); }; 返回建设者; }).call(this); }).call(this);
请注意,我在函数定义中使用了“胖箭头”。有几件事我没有从代码中得到。
- _this 变量有什么用
- 如果您将此代码运行为: (new builders()).privLedgeMethod() 而不是在 call 方法中它找不到 priv2Method 方法。即使builders对象确实将priv2Method显示为它的原型的属性。
希望有人可以在这里有所启发。