Javascript - вызов объекта первого уровня из подобъекта. - PullRequest
0 голосов
/ 30 июля 2011

У меня проблема с вызовом суперобъекта из подобъекта.

Значение dn не определено, если вы удалите // комментарий

http://jsfiddle.net/HsZp6/2/

dn =
{
    documentTags:
    {
        elements: html.find('*'),
        description: 'Document tags',

        //amount: dn.documentTags.elements.length + 1,

        // returns dn is undefined
        amountNinja: 400,
        amountTrainee: 1500,
        amountNovice: 3000
    }
};

Ответы [ 3 ]

1 голос
/ 30 июля 2011

Попробуйте вместо этого:

var elements = html.find('*');
dn =
{
    documentTags:
    {
        elements: elements,
        description: 'Document tags',

        amount: elements.length + 1,

        // returns dn is undefined
        amountNinja: 400,
        amountTrainee: 1500,
        amountNovice: 3000
    }
};
1 голос
/ 30 июля 2011

Вы пытаетесь объявить объект json, в котором сумма является просто другим свойством. Прежде чем объект будет определен, вы пытаетесь использовать его, что вообще невозможно.

Попробуйте это

dn =
{
    documentTags:
    {
        elements: html.find('*'),
        description: 'Document tags',

        //amount: dn.documentTags.elements.length + 1,

        // returns dn is undefined
        amountNinja: 400,
        amountTrainee: 1500,
        amountNovice: 3000
    }
};

dn.amount = dn.documentTags.elements.length + 1;
0 голосов
/ 30 июля 2011

посмотрите на этот пример

function addChild(ob, childName, childOb)
{
ob[childName] = childOb;
childOb.parent = ob;
}

var life= {
    mameAndDestroy : function(group){ },
    kiss : function(group){ }
};

addChild(life, 'users', {
guys : function(){ this.parent.mameAndDestroy(this.girls); },
girls : function(){ this.parent.kiss(this.boys); },
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...