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])
}
};
}
我正在尝试创建这个简单的 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])
}
};
}