在同一JavaScript类[Prototype]中调用方法
我已经使用prototype类在Javscript中创建了一个类。Create complete带有initialize函数和一些其他函数。但是,在我的一个函数中,我想引用同一类中的另一个函数,但似乎无法获得正确的语法 e、 g 我尝试调用functo(),this.functo(),但没有任何效果,我只是遇到了错误。我知道当类被实例化时如何在外部调用函数,但不从类本身引用函数 谢谢 这个.functionA() 是从同一对象的另一个方法中调用该对象的方法的正确方法 但什么都不管用,我只会出错 什么错误?如果您得到的是“未找到属性函数”,则可能是在同一JavaScript类[Prototype]中调用方法,javascript,prototypejs,Javascript,Prototypejs,我已经使用prototype类在Javscript中创建了一个类。Create complete带有initialize函数和一些其他函数。但是,在我的一个函数中,我想引用同一类中的另一个函数,但似乎无法获得正确的语法 e、 g 我尝试调用functo(),this.functo(),但没有任何效果,我只是遇到了错误。我知道当类被实例化时如何在外部调用函数,但不从类本身引用函数 谢谢 这个.functionA() 是从同一对象的另一个方法中调用该对象的方法的正确方法 但什么都不管用,我只会出错
此
指向错误的位置。使用Firebug或一些警报
让我们来看看是什么。一个常见的问题是,您已将方法的函数从所有者对象分离,并将其传递给其他对象:
element.onclick= this.functionB;
在这种情况下,当调用函数b
时,此
将被取消设置,因此将默认设置为窗口
。这是因为JavaScript中的object.methodname
与许多其他现代脚本语言不同,它只提供未绑定的函数对象,而不是绑定的方法
保存这个的简单方法是函数。这个由Prototype引入,现在是JavaScript的标准化部分(很快就会出现在您附近的浏览器脚本引擎中)
element.onclick= this.functionB.bind(this);
这个.functionA()
是从同一对象的另一个方法中调用该对象的方法的正确方法
但什么都不管用,我只会出错
什么错误?如果您得到的是“未找到属性函数”,则可能是此
指向错误的位置。使用Firebug或一些警报
让我们来看看是什么。一个常见的问题是,您已将方法的函数从所有者对象分离,并将其传递给其他对象:
element.onclick= this.functionB;
在这种情况下,当调用函数b
时,此
将被取消设置,因此将默认设置为窗口
。这是因为JavaScript中的object.methodname
与许多其他现代脚本语言不同,它只提供未绑定的函数对象,而不是绑定的方法
保存这个的简单方法是函数。这个由Prototype引入,现在是JavaScript的标准化部分(很快就会出现在您附近的浏览器脚本引擎中)
element.onclick= this.functionB.bind(this);
同意bobince,但您需要使用Event.observe()语法来附加事件处理程序,而不是分配给元素的onclick属性。例如:
element.observe('click', this.functionB.bind(this));
同意bobince,但您需要使用Event.observe()语法来附加事件处理程序,而不是分配给元素的onclick属性。例如:
element.observe('click', this.functionB.bind(this));