javascript 更近和返回的物体

javascript closer and returning objects

我正在尝试创建这个简单的 Toaster 函数,它将创建一个新的烤面包机和 return 类型的对象及其烹饪方式。一个非常简单的练习,除了我得到 'Uncaught ReferenceError: typeOfFood is not defined' 的错误。我正在尝试将 typeOfFood 作为参数传递。这是代码:

var Toaster = function(){  
function cook(type,temp){ 
    var food = type;
    var amtCooked; 
    if(temp >7){
    amtCooked = "Well Done!"
    }else if(temp > 4){
    amtCooked = "Medium";
    }else{
    amtCooked = "Lightly done!";
    }
    this[food] =food + amtCooked;
}
return{
toast: function(typeOfFood,setting){
        cook(typeOfFood,setting)
        }
    };
}

这样做:

var Toaster = function(){  
function cook(type,temp){ 
    var food = type;
    var amtCooked; 
    if(temp >7){
    amtCooked = "Well Done!"
    }else if(temp > 4){
    amtCooked = "Medium";
    }else{
    amtCooked = "Lightly done!";
    }
    this[food] =food + amtCooked;
}
return{
toast: function(typeOfFood,setting){
        cook(typeOfFood,setting)
        }
    };
}

原因:你返回的是toast函数,所以当你创建一个对象并调用toast时你需要在这里发送参数并且需要在函数中接收toast

致电:

var v = new Toaster();
v.toast("bread",4)

现在没有错误

如果你不想在 toast 函数中给出参数,你可以使用 toast 函数的 arguments 对象,这样做:

 var Toaster = function(){  
    function cook(type,temp){ 
        var food = type;
        var amtCooked; 
        if(temp >7){
        amtCooked = "Well Done!"
        }else if(temp > 4){
        amtCooked = "Medium";
        }else{
        amtCooked = "Lightly done!";
        }
        this[food] =food + amtCooked;
    }
    return{
    toast: function(){
            cook(arguments[0],arguments[1])
            }
        };
    }