javascript - 测试在 Javascript 中创建对象

标签 javascript

我正在做作业,我需要创建一个类,以便代码按预期运行。

// 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/

相关文章:

javascript - 错误 : Objects are not valid as a React child (found: object with keys. .........)

javascript - jQuery - 使动态创建的 DIV 在单击时自行删除

javascript - 使用 CasperJS 检查 AJAX 加载的 JS 对象/类?

javascript - 获取类字符串并使用 Javascript 添加内联 css

Javascript 不适用于 FireFox for Android,仅适用于我的网站

javascript - 单击事件时从 jquery 触发 vue 方法

javascript - 如何在 Javascript 中绘制具有相同渐变的每一行?

javascript - 如何增加jquery json中的自定义计数

javascript - JS垃圾收集器会清除堆栈内存吗?

javascript - 在 3 列中显示 div