console.log不在变量内部渲染

时间:2015-05-21 16:04:38

标签: javascript console.log

我创建了var模板但是当我在chrome console中的console.log时没有显示任何内容。我有点困惑,因为如果我删除console.log('template created');并将其移动到它在控制台中呈现的var template = function()

    var Template = function(){
      // -------------------------------------------------------------------------
      this.__construct  = function(){    
          console.log('template created');
      };
      // -------------------------------------------------------------------------
      //works in console


      console.log('template created');

      var Template = function(){

      // -------------------------------------------------------------------------
      this.__construct  = function(){

      };
      //-------------------------------------------------------------------------
   };

1 个答案:

答案 0 :(得分:4)

您是否希望console.log中的__construct解雇?因为它赢了。你正在做什么

  this.__construct  = function(){    
      console.log('template created');
  };

正在为新对象创建一个函数(如果您使用Template作为函数构造函数,即new Template())。你最终得到的是一个具有函数__construct的新对象。即。

var Template = function(){
  console.log('fires when initialized');

  this.__construct = function () {
    console.log('inside construct');
  };
};

var template = new Template(); // 'fires when initialized'
template.__construct(); // 'inside construct'

不建议以这种方式在对象上创建函数。您通常希望将这些功能放在原型上。我建议您阅读function constructors以获得更深入的了解。 http://tobyho.com/2010/11/22/javascript-constructors-and/似乎是一个很好的起点。