2017-03-09 72 views
0

我正在试图创建一个名为Cat的新构造函数,它需要一个猫的名字。我希望Cat有几种方法,包括getName和setName方法。构造函数的基本getName函数错误

如果我执行 cat = new Cat('Catarina');

,然后运行cat.getName();我期待“卡塔琳娜”要返回,而是我得到undefined

JSBIN:http://jsbin.com/cuteye/edit?js,console

function Cat(name) { 

    function getName() { 
     return name; 
     } 

    function setName(name) { 
     this.name = name; 
    } 

} 
+0

您需要在您的构造函数中将'name'设置为'this.name',然后'getName'返回'this.name' – Hamms

回答

-1

您正在创建一个封闭。你需要返回这些方法或者他们保持私有。

function Cat(name) { 

     this.name = name; 

     function getName() { 
      return name; 
      } 

     function setName(name) { 
      this.name = name; 
     } 

     return { 
      getName : getName, 
      setName : setName 
     }   
} 

cat = new Cat('Catarina'); 
console.log(cat.getName());