我正在上 Udemy 的类(class)“Javascript:理解奇怪的部分”,遇到了一个让我无法继续前进的问题。我正在构建一个小型 js 框架。它有一个简单的结构:

(function (global, $){ 
   var Greetr = function(firstName, lastName, language){ 
       return new Greetr.init(firstName, lastName, language); 
   } 
 
   Greetr.prototype = {}; 
 
   Greetr.init = function(firstName, lastName, language){ 
 
      var self = this; 
 
      self.firstName = firstName || "<first name>"; 
 
      self.lastName = lastName || "<last name>"; 
 
      self.language = language || "en"; 
 
   } 
 
   Greetr.init.prototype = Greetr.prototype; 
 
   global.Greetr = global.G$ = Greetr; 
 
}(window,jQuery)); 

当我尝试使用我的框架时,我得到了意想不到的结果:

var name = Greetr("John", "Doe"); 
console.log(name); 

输出到控制台:字符串类型的“[object Object]”。

我错过了什么吗?你能帮我想出解决办法吗?

提前致谢!

更新#1 我期待一个对象,以便我可以在 Chrome 的控制台中浏览它,就像您在其中键入“window”一样。

更新#2 令人惊讶的是,错误是在命名我的对象“名称”时:

var name = G$("John", "Doe"); 

一旦我将其重命名为其他名称,它就可以正常工作了!

请您参考如下方法:

name 是一个 Javascript 对象,所以你不能按原样回显它,因为它不是标量变量。对象可能具有大型结构和父子引用。如果你想回显一个对象值,你可以在你的类中实现一个 toString() 方法来构建一个你可以使用的字符串,

console.log (name.toString ()) ; 

或者使用json格式。

console.log (JSON.stringify (name)) ; 


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!