Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.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
Javascript 同一范围级别上的两个几乎相同的函数执行不同的操作_Javascript_Extjs_Sencha Touch - Fatal编程技术网

Javascript 同一范围级别上的两个几乎相同的函数执行不同的操作

Javascript 同一范围级别上的两个几乎相同的函数执行不同的操作,javascript,extjs,sencha-touch,Javascript,Extjs,Sencha Touch,我有一个奇怪的问题,我不能动脑: 我有一个对象,其中有3个元素(对这个问题很重要): 它们在对象中的外观如下所示: app.controllers.login = new Ext.Controller({ /** * @cfg url * Login request URL */ base_url: 'http://resttest.******.com/v1/', remind_url: function() { console.log(this.base_url); return th

我有一个奇怪的问题,我不能动脑:

我有一个对象,其中有3个元素(对这个问题很重要):

它们在对象中的外观如下所示:

app.controllers.login = new Ext.Controller({
/**
 * @cfg url
 * Login request URL
 */
base_url: 'http://resttest.******.com/v1/',
remind_url: function() { console.log(this.base_url); return this.base_url +'/member/passwordreminder/' },
login_url:  function() { console.log(this.base_url); return this.base_url + '/member/login' },

当我调用remind_url时,base_url等于它应该是什么http://resttest.**.com/v1/”),但是当我调用login\u url时,基本url是未定义的


为什么?

我猜这是
的问题。当
base\u url
未定义时,可能是因为
是全局对象,而不是您的对象。你有什么东西可以绑定到这个
?例如,在Backbone.js中,视图通常有一行使用下划线.js,如下所示:

_.bindAll(this, 'remind_url, 'login_url', etc);
它将把所有作为回调调用的方法绑定到
this


要确认这一点,请将
console.log(this.base\u url)
更改为
console.log(this)
,以了解本例中的
是什么。

感谢Renesis提出了正确的问题


我一直将调用视为一种方法,而不是函数-this.login\u url=未定义,但this.login\u url()未定义。

请不要在问题中添加标记。有一个单独的“标签”字段是有原因的。你可能对这个原因是正确的,但考虑到其中一个已经起作用,这可能不是正确的解决方案。我还不能回答我自己的问题,因为我的分数太低了,但我找到了问题的解决方案:感谢Renesis提出了正确的问题!我一直将调用视为一个方法,而不是一个函数-this.login\u url=未定义,但this.login\u url()不是。@Renesis我确实说过“你有什么东西可以绑定到
this
?”-我想可能是绑定了,但另一个没有。但无论如何,这显然不是解决办法!
_.bindAll(this, 'remind_url, 'login_url', etc);