例如
var a = function() { };
var b = function() {
a(); // Identifier.name a - declared already
};
和
var b = function() {
a(); // Identifier.name a - NOT declared already
};
这是访客
export default function ({types: t }) {
return {
visitor: {
CallExpression: function (p) {
var nameToCheckIfDeclared = p.node.callee.name;
// ???
}
}
};
}
答案 0 :(得分:2)
所有与Babel的范围相关的函数都在path.scope
对象上。在这种情况下,您可以查看p.scope.hasBinding(p.node.callee.name)
。