向对象添加原型方法
Adding a prototype method to an object
我正在Code Academy做一个javascript教程。问题在这里(链接):
通过扩展Dog类的原型,将sayHello方法添加到该类中。
sayHello应该打印到控制台:"Hello this is a [breed] dog",其中[breed]是狗的品种。
下面是我的代码:
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方法没有正确地记录到控制台'Hello这是一只[breed]狗',其中[breed]是狗的品种
这是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不支持。
Ref: MDN: console.log
使用不带替换字符串的旧形式也可以:
console.log("Hello this is a " + this.breed + " dog");
相关文章:
- 使用“;这个“;JavaScript原型方法中的关键字
- 引用类变量中的原型方法
- 如何从对象的原型方法访问JavaScript对象属性
- 什么意思是“;向原型添加方法”;
- 如何将原型用于自定义方法和对象操作
- 如何从构造函数中调用js原型方法
- Javascript不调用原型方法
- jQuery如何在原型中调用方法
- 为什么不't loadash/aunderline将util方法放在数组原型上
- 有没有任何情况下,一个方法不应该是原型方法
- 调用影子原型方法的更简单/更好的方法
- 使用sinon.js创建一个“;“间谍对象”;使用基于真实构造函数/原型的间谍方法
- 用于数组原型的JavaScript独特方法
- 当对象从服务器发送到客户端时,JS原型方法消失了
- 构造 JavaScript Array 原型方法
- 无法将方法原型添加到 JavaScript 对象
- Javascript对象方法原型
- 将方法原型化为子对象
- 继承方法(原型)和静态方法(表达式)的区别是什么?
- javascript中的闭包方法原型