JavaScript框架通常使用apply()调用回调。
然而,TypeScript的箭头表示法似乎不允许我访问“这个'指针。
它是如何完成的?
如果不是,那么有没有地方可以对当前的'这个'进行投票。处理Lambdas?
答案 0 :(得分:4)
TypeScript在箭头函数中对this
的处理符合ES6(阅读:Arrow Functions)。由于该规范,以任何其他方式采取行动都是不一致的。
如果您想访问当前功能的this
,则可以使用常规功能。
例如,更改:
function myScope() {
var f = () => console.log(this); // |this| is the instance of myScope
f.call({});
}
new myScope();
要:
function myScope() {
var f = function() { console.log(this); } // |this| is {}
f.call({});
}
new myScope();
答案 1 :(得分:1)
让Lambda函数与关键字 this 一起使用的一种方法是将其放在类中。
在下面的示例中,函数employee2将不会编译:
;; skip
(defmacro ,(symbolicate 'with- struct) (components &rest body)
(append
'(loop)
(eval
`(iter (for s in ',',slot-names)
(appending `(for ,s across (,(symbolicate ',',struct '- ,'s) ,,components)))))
'(do)
body))