2016-08-17 112 views
-2

定义构造函数我在common.js文件中的JavaScript对象:麻烦在Javascript

var KITS= 
{ 
    debug: false, 
    default_country : 'xxx', 
    franchise : '' 
}; 

KITS.init=function(cb) 
{ 
    var self = this; 
    $.ajax({ 
     // ... 

      if (typeof cb==='function') (cb)(); 
     }, 
    }); 

    if (typeof cb==='function') (cb)(); 
}; 

我包括这个js文件中的PHP文件。请问一些专家,请告诉我需要做什么,以便在创建KITS对象时自动调用KITS.init()。

回答

0

你需要真实constructor

function KITS() { 
    // This is contructor method 
    console.log('hello world!'); 

    // Call your init method if you want 
    this.init(); 
} 
KITS.prototype = { 
    constructor: KITS, 
    init: function() { 
     // Do some staff here 
    } 
}; 

var kits = new KITS(); 

工作实例https://jsfiddle.net/61feepq5/1/

+1

不要忘记把'this.init();'放在构造函数的末尾,否则OPs问题还没有解决。 :) – Shilly

0

对象文字不是用new创建的,所以即使它们有一个也不会触发构造函数。他们没有构造,由于没有一个原型自己:

const foo = { 
 
    a: 1, 
 
    b: 2 
 
}; 
 
console.log(Object.getPrototypeOf(foo));

+0

他们有原型,他们没有'prototype'属性。 – Maxx

+0

@Maxx修正了措词。他们有一个原型,而不是他们自己的。 – ssube

+0

你的意思是?如果你用这种方式创建对象,它将会有空的对象原型。 – Maxx