2011-07-26 108 views
0

I wasn't sure what it was called, but I was trying to have a function return a reference to it's self. Thank you very much传递自(功能)

这是我很难解释(这可能是为什么我一直没能找到任何有用的谷歌搜索结果)

这是一个例子然而,将告诉你我的意思

this.test = function(foo){ 
    return this.test; //The function is namespaced 
} 

我希望解释我在这里要做的。我对这项工作没有太多的希望,但我刚刚开始编写更大的JavaScript对象,所以我遇到了很多我不习惯的奇怪(JavaScript中的类不完全是正向的)

+9

你的问题到底是什么? – Crisfole

+1

在这里看不到任何逻辑。你试图让函数返回自己的引用? –

+0

是的我试图让函数返回自己的引用。再次感谢 – vvMINOvv

回答

2

内部和外部this.test是不一样的,因为this在每个范围内是不一样的。

编写返回本身(虽然我不知道你为什么会想这样做)的函数试试这个:

var that = this; 
that.test = function() { 
    return that.test; 
} 

在您的例子this.test总是返回未定义

+2

我只是将函数表达式命名为例如'this.test = function test(foo){return test;};' – CMS

+0

对不起,我花了一段时间,我不得不旅行几天,但我现在正在测试。 (另外,是的,这正是我想要做的,我试图让一个函数返回它自己。) – vvMINOvv

+0

它工作!谢谢A TONNE @Greg Guida和CMS 如果我能给你们更多的分数,我会的。干杯! http://jsfiddle.net/qjJwP/2 – vvMINOvv

0

你张贴不会做任何事情。 这将“做点事”

myName={}; 

myName.test = function(foo){ 
    return foo;  
} 

alert(myName.test("hello")) 
+0

谢谢你的努力@Johnny。对此,我真的非常感激。干杯。 – vvMINOvv