您的位置:首页 > 房产 > 建筑 > 海口官网设计公司_上海企业地址大全_口碑营销的重要性_潍坊seo网络推广

海口官网设计公司_上海企业地址大全_口碑营销的重要性_潍坊seo网络推广

2025/1/8 8:00:31 来源:https://blog.csdn.net/asd501823206/article/details/144894409  浏览:    关键词:海口官网设计公司_上海企业地址大全_口碑营销的重要性_潍坊seo网络推广
海口官网设计公司_上海企业地址大全_口碑营销的重要性_潍坊seo网络推广
场景描述
# 接口
export interface Event {onChange: (type: string, item: Item) => void;
}# 实现event: Event = {onChange(type: string, item: Item): void {...}};

实现中代码的this,指向的是组件中的变量;而接口实现类收到回调的环境中,this并非指向组件,调试过程中可以看到所有的值都为undefined。

网上搜的可用的解决办法

总结:让this指向组件

在JavaScript中,函数的this指向是动态的,取决于函数的调用方式。通常,如果一个函数被作为对象的方法调用,this指向这个对象。然而,如果函数被作为回调使用(比如作为事件监听器、setTimeout、setInterval的参数、map、filter、reduce等函数的参数等),this可能不会指向你期望的上下文(例如,可能指向全局对象或者在严格模式下是undefined)。

解决方法:

使用箭头函数:箭头函数没有自己的this,它会捕获其在定义时所处的this

element.addListener('click', () => {// 在这里,this 指向 element 对象
});

修改后代码:

    event: Event = {onChange: (type, item) => {...}};

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com