我在返回函数中有一个非常简单的逻辑,但它没有按预期工作。当然我可以让代码稍长一些并解决问题,但我希望它尽可能小。
这是我的代码:
#Return title if exists or false otherwise
getPageTitleFromMainContent = (mainContent) ->
mainContent.find('#pageTitle') ?.length ?= false
if y = (getPageTitleFromMainContent $("#mainContent"))
y.css color:red
如您所见,如果它在#mainContent 中找到#pageTitle,它应该将其变为红色。但是如果找到该函数不会返回#pageTitle,它会返回.length。
从 js2coffee.org 我看到代码被编译成:
var getPageTitleFromMainContent, y;
getPageTitleFromMainContent = function(mainContent) {
var _ref, _ref1;
return (_ref = mainContent.find('#pageTitle')) != null ? (_ref1 = _ref.length) != null ? **_ref1 : _ref.length = false : void 0;**
};
if (y = getPageTitleFromMainContent($("#mainContent"))) {
y.css({
color: red
});
}
它应该是_ref : _ref.length = false : void 0;
,不是_ref**1** : _ref.length = false : void 0;
。
谢谢!