我正在编写一个脚本,并且每个人都很好,直到几天前。我有一个用function()
创建的对象,我在其中使用了几种方法。
要访问对象内的属性,我使用this
关键字,并且工作正常。
例如:
var SeralCore = SeralCore || function ()
{
this.initSeral();
return this;
};
SeralCore.prototype = {
page = null;
initSeral = function ()
{
alert(this.page);
}
}
完整代码:http://pastebin.com/81Zn9276
jsFiddle示例:https://jsfiddle.net/g2ahu6ob/10/
当我有一个事件,其中一个回调被触发并且我必须访问该属性page
时,我使用了以下内容,因为我不能再使用this
:
$('.button').click(function () {
SeralCore.page = 'Some value';
});
这很好用,但突然有一个错误,说我无法达到像上面的exameple中使用的属性(或我的情况*中的对象)。输出为undefined
。
如果我记录SeralCore
,我决定调查输出结果。令人惊讶的是,它说:
正如您所看到的,SeralCore末尾有一个<
,它不属于那里。
这是正常的吗?这是无法使用“全名”(SeralCore.page
)访问属性的原因吗?如果是这样,有没有办法解决它?
很多很多人提前感谢,因为我无法弄清楚我做错了什么。
段:
var SeralCore = SeralCore || function () {
this.initSeral();
return this;
};
window.onload = function () {
this.SeralCore = new SeralCore();
};
SeralCore.prototype = {
page: 'Page',
initSeral: function ()
{
this.registerPage.start();
},
registerPage: {
start: function ()
{
$('.output').text(typeof SeralCore.page + ' (Should show \'String\' when it can read SeralCore.page)');
}
}
};
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<span class="output"></span>