в объектном литерале JavaScript, как ссылаться на функцию, которая имеет тот же уровень или верхний уровень? - PullRequest
0 голосов
/ 10 октября 2009

как следующий код, мой вопрос:
в testFunction, как я могу вызвать функцию удаления?
Как я могу вызвать testFunction?
В удалении, как я могу позвонить добавить?

большое спасибо

var stringhelper={
testFunction:function(){},

//deal with text such as:
//"alignleft red bold header2"
classValue:{
    //test whether classValue has className in it
    has:function(classValue,className){
        var regex=new RegExp("(^|\\s+)"+className+"(\\s+|$)");
        return regex.test(classValue);
    },

    remove:function(classValue,className){
        return classValue.replace(className,"").replace(/\s+/g," ").replace(/^\s+|\s+$/g,"");
    },

    add:function(classValue,className){
        if(/^\s+$/.test(classValue)){
            return className;
        }

        if(!this.has(classValue,className)){
            return classValue+" "+className;    
        }

    }
}

};

1 Ответ

2 голосов
/ 10 октября 2009

Для доступа к remove() из testFunction() вы можете сделать:

this.classValue.remove();

Чтобы пойти другим путем, я думаю, вам придется использовать

stringhelper.testFunction();

, поскольку у вас нет переменной, содержащей функцию или родительский объект this (который можно использовать в замыкании).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...