不确定这是一个错误还是预期行为,但我认为这个)
(defn test-fn []
(let [href js/location.href
location "123"]
href))
被编译成这个(非高级模式)
cognician.chat.ui.pages.insights.test_fn = (function cognician$chat$ui$pages$insights$test_fn(){
var href = location.href;
var location = "123";
return href;
});
本地 {{location}} 变量遮蔽了全局 I'm trying to access in {{location.href}}。
这种情况是预期的,应该在JS中注意并避开类似问题,但在CLJS中这很令人困惑,因为没有任何提示表明我犯了什么错误以及为什么代码失败。我记得ClojureScript的目标之一是修复JS语义,也许可以解决这个问题?至少抛出一个警告,也许?