8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

this.bind('string') 起什么作用?

beautifulsouper 2月前

22 0

阅读一段 TypeScript(上下文 Angular)时,发现了 JavaScript bind 函数的令人困惑的用法。有人能解释一下这个模式吗?示例 1const f = this.bind('astring');return f ? f(

在阅读一段 TypeScript(上下文 Angular)时,发现了 JavaScript bind 函数的令人困惑的用法。有人能解释一下这种模式吗?

示例 1

const f = this.bind('astring');
return f ? f(someArgs) : someDefaultReturn;

这里 用了好几次 .

根据 docs ,bind 的用法表明它在一个函数上被调用并传递一个对象,如下所示:

示例 2

const f = someFunc.bind(someObject);

其中 f 是一个调用 someFunc 的函数,并且在调用 f 时使其“this”上下文等于 someObject,这一切都是有道理的。

但是,当运行顶部示例 1 中的模式中的代码时,someFunc ('this') 变成一个对象(实际上是具有 'bind' 的类的实例,因此,从技术上讲它可能是一个函数),而 someObject ('astring') 是一个原始值而不是对象(是的,我知道所有原始值实际上都包装在对象中)。这完全让我不知所措。

这段代码在做什么以及怎样做的?

帖子版权声明 1、本帖标题:this.bind('string') 起什么作用?
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由beautifulsouper在本站《angular》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 在第一个例子中, bind 被调用的方法是 BackendService 类内部的方法:

    protected bind<T extends Function>(methodName: string) {
        const fn = (this.inMemDbService as any)[methodName];
        return fn ? (fn.bind(this.inMemDbService) as T) : undefined;
    }
    

    可以看到,这个内部 bind 方法在 methodName 内部 inMemDbService ,并将方法和对象进行绑定。

返回
作者最近主题: