我在Code Academy上做了一个javascript教程。这是问题(link):
通过扩展其原型,将sayHello方法添加到Dog类。
sayHello应该打印到控制台:“你好,这是一只[品种]狗”, [品种]是狗的品种。
这是我的代码:
function Dog (breed) {
this.breed = breed;
};
// add the sayHello method to the Dog class
// so all dogs now can say hello
Dog.prototype.sayHello = function() {
console.log("Hello this is a %s dog", this.breed);
}
var yourDog = new Dog("golden retriever");
yourDog.sayHello();
var myDog = new Dog("dachshund");
myDog.sayHello();
我的输出:
你好,这是一只金毛狗
你好,这是一只腊肠犬
我得到的错误:
哎呀,再试一次。看来你的sayHello方法没有正确登录到控制台'你好这是一只[品种]狗,其中[品种]是狗的品种
这是CA代码检查程序的问题还是我做错了什么?
答案 0 :(得分:3)
无论CodeAcademy使用什么方法来检查结果,它都不喜欢您处理文本的方式。当我这样做时:
console.log("Hello this is a " + this.breed + " dog");
它说这是“正确的”。
答案 1 :(得分:1)
您的代码对我来说很好,我认为这是CA的一个问题。
如果您将其更改为:
Dog.prototype.sayHello = function() {
console.log("Hello this is a " + this.breed + " dog");
}
然后CA没有抱怨并说它是正确的。
答案 2 :(得分:1)
在所有版本的Javascript中都不支持在console.log
中使用替换字符串。例如,Internet Explorer 9不支持它们。
使用没有替换字符串的旧表单:
console.log("Hello this is a " + this.breed + " dog");