繁体   English   中英

向对象添加原型方法

[英]Adding a prototype method to an object

我正在做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的代码检查器出现问题还是我做错了什么?

无论CodeAcademy使用什么方法来检查结果,它都不喜欢您处理文本的方式。 当我做:

console.log("Hello this is a " + this.breed + " dog");

它说这是“正确的”。

您的代码对我来说看起来不错,我认为这是CA的问题。

如果将其更改为:

Dog.prototype.sayHello = function() { console.log("Hello this is a " + this.breed + " dog"); }

然后CA不会抱怨,说是正确的。

所有版本的Javascript均不支持在console.log使用替换字符串。 例如,Internet Explorer 9不支持它们。

参考: MDN:console.log

使用不带替换字符串的较旧形式的作品:

console.log("Hello this is a " + this.breed + " dog");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM