我创建了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(){
};
//-------------------------------------------------------------------------
};
答案 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/似乎是一个很好的起点。