功能名称更改(?)

时间:2015-07-13 17:21:13

标签: javascript jquery function object properties

我正在编写一个脚本,并且每个人都很好,直到几天前。我有一个用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,我决定调查输出结果。令人惊讶的是,它说: Ouput when logging <code>SeralCore</code>

正如您所看到的,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>

0 个答案:

没有答案