[英]Trying to populate string with values from object properties - getting "undefined"
我正在尝试在 Codewars 上解决以下 Javascript kata 但变得“未定义”。 请有人告诉我究竟什么是“未定义”。 我正在努力了解下面的代码中缺少的内容。 干杯。
挑战链接: https://www.codewars.com/kata/training-js-number-5-basic-data-types-object
我搜索了 FreeCodeCamp JS OOP 和 Basic 教程/课程以找到类似的问题。 通过 StackOverflow、Reddit 和 Google 搜索了很多类似挑战的网站。 代码如下:
function animal(name, legs, color) {
this.name = name;
this.legs = legs;
this.color = color;
}
var dog = new animal("dog", 4, "white");
// similar variables set such for other animal objects.
animal.prototype.toString = function animalToString() {
var sent = "This " + this.color + " " + this.name + " has " + this.legs + " legs.";
return sent;
}
return animal.prototype.toString.call();
预期: This white dog has 4 legs.
,取而代之的是: undefined
1) 根据“说明”
给你一个函数动物,像这样接受 1 个参数 obj:{name:"dog",legs:4,color:"white"} 并返回一个这样的字符串:“这只白狗有 4 条腿。”
function animal({name, legs, color}) {
return `The ${color} ${name} has ${legs} legs.`;
}
2)基于你应该学习的内容
function animal({name, legs, color}) {
this.name = name;
this.legs = legs;
this.color = color;
}
animal.prototype.toString = function animalToString() {
return `The ${this.color} ${this.name} has ${this.legs} legs.`;
}
var dog = new animal({name:"dog", legs:4, color:"white"});
dog.toString();
尝试这个:
function animal(obj){
var newAnimal = {
name: obj.name,
legs: obj.legs,
color: obj.color
};
return "This " + newAnimal.color + " " + newAnimal.name + " has " + newAnimal.legs + " legs.";
}
我相信这个 kata 的目的是向您介绍 javascript 对象。 当您更改函数“animal”的输入时,会引发该问题。 如果您查看右下角的示例测试,输入到您尝试创建的函数中的输入应该只接受一个参数,该参数是一个具有名称、腿和颜色属性的对象。 您将此输入更改为三个单独的参数,而不是一个。
或者您可以完全跳过分配并直接访问输入,如下所示:
function animal(obj){
return "This " + obj.color + " " + obj.name + " has " + obj.legs + " legs.";
}
function animal(obj){
return `This ${obj.color} ${obj.name} has ${obj.legs} legs.`
}
你可以试试这个
function animal(obj){
var a={name:"dog",legs:4,color:"white"}
return "This" + " " + a.color + " " +a.name + " " + "has" + " " + a.legs + " " + "legs.";
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.