我创建了一个生成并返回对象的函数:
function TickersObj(tag, array, boolLots, boolOptions, boolDisplay) {
tag = tag || {};
array = array || [];
boolLots = boolLots || false;
boolOptions = boolOptions || false;
boolDisplay = boolDisplay || true;
console.log('tag = ', tag);
console.log('array = ', array);
console.log('boolLots = ', boolLots);
console.log('boolOptions = ', boolOptions);
console.log('boolDisplay = ', boolDisplay);
this.assoTikArray = array;
this.lotsOfTags = boolLots;
this.tagOptions = boolOptions;
this.tagsHoverDisplay = boolDisplay;
return this;
}
Run Code Online (Sandbox Code Playgroud)
稍后在我的代码中我传递的值如下:
switch(type) {
case 'tagsPanel':
tag.tickers = data.data.ticker_tag.tickers;
var tickersObj = TickersObj(tag, tag.tickers, tag.lotsOfTags, true, true);
return tickersObj;
break;
....
Run Code Online (Sandbox Code Playgroud)
然而,一旦它到达这一行this.assoTikArray = array;
我得到错误Cannot set property assoTikArray of undefined
关于我做错了什么的想法?
你只是在没有上下文的情况下调用函数(即TickersObj()
没有something.TickersObj()
),所以它里面的值this
是默认对象(window
在浏览器中)或undefined
(在严格模式下).大概你是在严格的模式.
要创建与调用它的功能的新实例的new
关键字.
var tickersObj = new TickersObj(tag, tag.tickers, tag.lotsOfTags, true, true);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
39 次 |
最近记录: |