创建一个类并调用它';s属性(javascript)

创建一个类并调用它';s属性(javascript),javascript,class,object,Javascript,Class,Object,因此,我们的想法是创建一个类动物,并将其属性设置为一个新对象 以下是我所拥有的: var name; var type; function Animal(name,type){ this.type = type, this.name = name, toString = function(){return this.name + "is a " + this.type;} }; var cat = new Animal('Max','cat'); cat.type; 每次我运行它

因此,我们的想法是创建一个类动物,并将其属性设置为一个新对象

以下是我所拥有的:

var name;
var type;
function Animal(name,type){
  this.type = type,
  this.name = name,
  toString = function(){return this.name + "is a " + this.type;}
};

var cat = new Animal('Max','cat');
cat.type;

每次我运行它-我似乎在toString部分失败?非常新,正在尝试了解这一点-我缺少什么吗?

您不需要声明那些顶级变量,参数应该是函数的局部变量。语法也是错误的,您应该使用分号,而不是逗号,
toString
成为一个全局变量,因为您忘记了使用
var

function Animal(name, type) {
  this.type = type;
  this.name = name;
};

Animal.prototype.toString = function() {
  return this.name + "is a " + this.type;
}

var cat = new Animal('Max', 'cat');
console.log(cat); // Prints "Max is a cat"
您需要的是
this.toString
因此
this
在内部工作并引用实例,或者更好的是,在
原型上创建一个方法,以便可用于
动物的所有实例:

function Animal(name,type) {
  this.type = type;
  this.name = name;
}

Animal.prototype.toString = function() {
  return this.name + "is a " + this.type;
};

您不需要声明那些顶级变量,参数应该是函数的局部变量。