我正在做作业,我需要创建一个类,以便代码按预期运行。
// This is the test input
movie = new Movie("Star Wars");
// Expected Output
[Movie "Star Wars"] // Expected output
我的问题是我该如何获得它?
据我了解,他们要我用 ES5 编写一个类。到目前为止,这是我的代码
var Movie = function Movie(title) {
this.title = title;
this.header = this.title = (title) ? "[Movie \"" + title + "\"]": "[Movie]";
this.show = function(){
console.log('Your movie is on theaters');
}
}
movie = new Movie("Lord Of The Rings"); // [object Object]
我是不是漏掉了什么?
更新 1:正如@loïc-faure-lacroix 所建议的那样,这是解决它的代码。
var Movie = function Movie(title) {
this.title = title;
this.header = this.title = (title) ? "[Movie \"" + title + "\"]": " [Movie]";
this.show = function(){
console.log('Your movie is on theaters');
}
}
movie = new Movie("Lord Of The Rings"); // [Movie "Lord of The Rings"]
movie = new Movie(); // [Movie]
最佳答案
您正在寻找一种将对象转换为字符串的方法。除非您要将对象添加到 html 元素,否则您要寻找的是定义 toString
方法。
Movie.prototype.toString = function () {
return this.title
}
它会在一些解释器的控制台中显示对象,但不清楚是否所有控制台都支持。
从技术上讲,它不会工作,因为某些控制台(如 firefox)会使用指向对象的奇特链接。但是如果你想把它连接成一个字符串,那么它会调用 toString 并将对象适本地转换为字符串。但据我所知,未转换为字符串的原始对象的输出是未定义的。
注意:
下面的操作是没有用的,因为你已经定义了名为 Movie 的函数:
var Movie = function Movie() { ...}
关于javascript - 测试在 Javascript 中创建对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41066229/