为什么我的原型方法返回undefined?

时间:2016-08-03 00:45:23

标签: javascript

我创建了一个返回true和false的原型方法。问题是它没有返回值。我知道它到达了语句,因为我在条件满足时使用了console.log()但没有返回值。

我似乎无法弄清楚这一点。如果有人可以帮助我,我会非常感激。以下是我的代码

function Validation(){
    this.checkRequired = function(){
        $(".modifiers-group-cont").each(function(){
            var select_opt_notify = $(this).find(".select-option-notify");

            /*The radio buttons that are required  are always going to be marked check,thats why we are only
            * checking for the checkbox*/
            if($(this).attr("data-is-checked") == "false" && $(this).attr("data-input-type") == "checkbox"){
              select_opt_notify.show();
                return  false;
            } else {
                select_opt_notify.hide();
                return "true";
            }
        });
    }

function ModifierPost(){
    (function(){
        $("#add-to-cart").click(function(){
            console.log(validation.constructor); //Shows undefined

            if(validation.checkRequired()){
            $.post("#",$("form").serialize()+ "&item_id=" + item_id);
            }
        });
    })();
}

2 个答案:

答案 0 :(得分:2)

return语句属于each中的函数:

$(".modifiers-group-cont").each(function(){

您需要公开您希望返回到外部范围的值,并在调用return之后调用each 。< / p>

答案 1 :(得分:0)

您已使用Capital V创建了您的函数,并在验证函数名称中使用Smaill v进行调用 这就是它给你未定义你在代码中提到的地方的原因。

MOD123|

它应该与Capital V一样

 console.log(validation.constructor); //Shows undefined
 if(validation.checkRequired()){