如何在 JavaScript 原型函数中保留“this”引用
在 JavaScript 中,在原型函数中保留对“this”的引用可以是当范围发生变化时具有挑战性。要解决此问题,请考虑以下解决方案:
使用 Bind 方法
bind 方法允许您创建一个新函数,以保留对 'this' 的引用原始对象。用法:
function.bind(object, argument1, argument2, ...);
例如:
MyClass.prototype.myfunc = function() { this.element.click(this.myfunc.bind(this)); };
这可以确保触发点击事件时,'this' 引用 MyClass 实例。
创建对“this”的引用
您还可以在原型函数中创建对“this”的引用:
MyClass.prototype.myfunc = function() { var myThis = this; ... };
这允许您访问“this.myValue”在嵌套函数内。但是,您可能需要为每个原型函数创建这些引用,这可能很麻烦。
使用箭头函数
箭头函数继承了周围的上下文,这可以简化代码:
MyClass.prototype.doSomething = () => { // operate on the element };
避免全局变量
避免使用全局变量来保存“this”引用,因为这会污染全局命名空间当存在多个 MyClass 对象时可能会导致冲突。
jQuery Each 示例
要使用 jQuery 的each 方法,您可以使用 bind 方法来保留 ' this' 引用:
MyClass.prototype.doSomething = function() { this.elements.each(this.doSomething.bind(this)); };
结论
虽然使用原型模式通常被认为是良好的实践,但了解如何维护正确的 'this' 引用对于保留对象状态和行为。绑定方法和其他技术可以为这一挑战提供有效的解决方案。
以上是如何在 JavaScript 原型函数中保留'this”引用?的详细内容。更多信息请关注PHP中文网其他相关文章!