Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 如何调用调用者的函数&x27;这是什么名字空间?_Jquery_Function_Namespaces - Fatal编程技术网

Jquery 如何调用调用者的函数&x27;这是什么名字空间?

Jquery 如何调用调用者的函数&x27;这是什么名字空间?,jquery,function,namespaces,Jquery,Function,Namespaces,目标:我试图通过使用“this”而不是名称空间字符串来缩短在函数中调用相同名称空间的函数的方式。但显然“this”不适用于函数,它只适用于变量。我想知道这是否是由于我的误用,或者用名称空间字符串调用函数是唯一的方法 另一个初学者的问题:我正在调用与调用方名称空间相同的函数。我在谷歌上搜索,有人打电话说:this.myfunction可以工作,但不行。有什么想法吗?谢谢 我打电话: singleEntry.editContent.accept(tinyMCE.get('editContentTa'

目标:我试图通过使用“this”而不是名称空间字符串来缩短在函数中调用相同名称空间的函数的方式。但显然“this”不适用于函数,它只适用于变量。我想知道这是否是由于我的误用,或者用名称空间字符串调用函数是唯一的方法

另一个初学者的问题:我正在调用与调用方名称空间相同的函数。我在谷歌上搜索,有人打电话说:this.myfunction可以工作,但不行。有什么想法吗?谢谢

我打电话: singleEntry.editContent.accept(tinyMCE.get('editContentTa').getContent())

发件人: index.fragment.singleEntry.editContent.load

我试着这样做:this.accept,但firebug说this.accept不是一个函数

  index.fragment.singleEntry.editContent.load = (function(singleEntry) {
return function() {
    // prepare edit dialog
    $("#editContentDiv").dialog({
        autoOpen : false,
        height : 500,
        width : 600,
        modal : true,
        buttons : {
            "OK" : function() {
                singleEntry.editContent.accept(tinyMCE.get('editContentTa').getContent());
                $(this).dialog("close");
            },
            "CANCEL" : function() {
                $(this).dialog("close");
            }
        },
        open : function() {
            // set value to the edit area
            tinyMCE.get("editContentTa").setContent($("#veContent").html());
        }
    });
我没有完全遵循你的最终目标,因此一些理论希望能帮助你实现目标:

当您通过对象的属性调用函数时(因此,通过点符号或
[]
符号),函数调用中的
将成为对象引用。所以当你打电话的时候

singleEntry.editContent.accept(tinyMCE.get('editContentTa').getContent());
…在该调用中,
将引用
singleEntry.editContent

如果希望
引用其他内容,可以使用
调用

singleEntry.editContent.accept.call(thisObj, tinyMCE.get('editContentTa').getContent());
//                            ^^^^^^^^^^^^^
…其中,
thisObj
是您希望函数在调用期间视为
this
的任何对象。详情如下:

call
是所有(真实)JavaScript函数的属性,它的提供是为了使调用函数变得简单,并在调用过程中设置该
应该是什么(上下文是什么)。还有
apply
,它执行完全相同的操作,但接受作为数组而不是离散参数传递给函数的参数。例如,这两个调用是相同的:

// Using `call`
singleEntry.editContent.accept.call(thisObj, tinyMCE.get('editContentTa').getContent());

// Using `apply`
singleEntry.editContent.accept.call(thisObj, [tinyMCE.get('editContentTa').getContent()]);
//                        Note the `[]` -----^

所有这一切都是可能的,因为在JavaScript中,
这完全取决于函数的调用方式,而不是函数的定义位置-我想你知道,根据你的问题,但无论如何值得一提。

我没有完全遵循你的最终目标,所以一些理论希望它能帮助你实现这一目标:

当您通过对象的属性调用函数时(因此,通过点符号或
[]
符号),函数调用中的
将成为对象引用。所以当你打电话的时候

singleEntry.editContent.accept(tinyMCE.get('editContentTa').getContent());
…在该调用中,
将引用
singleEntry.editContent

如果希望
引用其他内容,可以使用
调用

singleEntry.editContent.accept.call(thisObj, tinyMCE.get('editContentTa').getContent());
//                            ^^^^^^^^^^^^^
…其中,
thisObj
是您希望函数在调用期间视为
this
的任何对象。详情如下:

call
是所有(真实)JavaScript函数的属性,它的提供是为了使调用函数变得简单,并在调用过程中设置该
应该是什么(上下文是什么)。还有
apply
,它执行完全相同的操作,但接受作为数组而不是离散参数传递给函数的参数。例如,这两个调用是相同的:

// Using `call`
singleEntry.editContent.accept.call(thisObj, tinyMCE.get('editContentTa').getContent());

// Using `apply`
singleEntry.editContent.accept.call(thisObj, [tinyMCE.get('editContentTa').getContent()]);
//                        Note the `[]` -----^

所有这一切都是可能的,因为在JavaScript中,
这个
完全取决于函数的调用方式,而不是它的定义位置-我想你知道,根据你的问题,但无论如何值得一提。

我已经验证了,对于一个变量,这个.variableName可以工作。但是对于一个函数,它不是。我已经验证了,对于一个变量,这个.variableName可以工作。但对于一个函数来说,它不是。谢谢,TJ。克劳德。但我正试图缩短调用同一名称空间函数的方式……”“所有这些都是可能的,因为在JavaScript中,这完全取决于函数的调用方式,而不是函数的定义位置——我想,根据你的问题,你知道这一点,但无论如何都值得一提。”这一点很好。这是我第一次知道这件事D@Issac:JavaScript没有名称空间,只有对象(er和作用域)。恐怕我没有实现你的最终目标。你想成为这个
的什么对象,为什么?(而且:很高兴我把那张便条也包括进来了!我不太确定,而且它与其他语言有很大的不同,所以我试着给大家强调一下。)再次感谢您的回复!:)我的目标是:通过使用“this”而不是名称空间字符串来缩短在函数中调用相同名称空间的函数的方式。但显然“this”不适用于函数,它只适用于变量。我想知道这是否是由于我的误用,或者用名称空间字符串调用函数是唯一的方法。@Issac:
this.variableName
不是指变量,而是指属性。附加到对象的函数也只是属性值,所以在这个意义上它们之间没有区别。如果您的目标只是缩短对函数的引用,那么这没有问题:
var x=singleEntry.editContent;x、 接受(…)再说一遍,JavaScript没有名称空间,所以使用这个术语可能会让您感到困惑…谢谢,TJ。克劳德。但我正试图缩短调用同一名称空间函数的方式……”“所有这些都是可能的,因为在JavaScript中,这完全取决于函数的调用方式,而不是函数的定义位置——我想,根据你的问题,你知道这一点,但无论如何都值得一提。”这一点很好。这是我第一次知道这件事D@Issac:JavaScript没有名称空间,只有对象(er和作用域)。恐怕我没有实现你的最终目标。你想成为这个
的什么对象,为什么?(而且:很高兴我把那张便条也包括进来了!我不太确定,而且它与其他语言有很大的不同,所以我试着给大家强调一下。)再次感谢您的回复!:)我的目标是:我试图通过使用“this”inst来缩短在函数中调用相同名称空间的函数的方式