在javascript对象文字中,如何引用具有相同级别或更高级别的函数?

时间:2009-10-10 08:19:41

标签: javascript json object

如下面的代码,我的问题是:
在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 个答案:

答案 0 :(得分:2)

要从remove()访问testFunction(),您可以执行以下操作:

this.classValue.remove();

另一方面,我认为你必须使用

stringhelper.testFunction();

因为你没有包含函数或父this对象的变量(可以在闭包中使用)。