【问题标题】:Extracting a method in Javascript在 Javascript 中提取方法
【发布时间】:2026-01-21 08:50:02
【问题描述】:

我了解到,如果我想从这个例子中提取一个方法。

var jane={
name:'jane', 
describe:function(){
  return 'Person named '+this.name;
    }
};

我不能这样做。

var func =jane.describe;
func();

由于它不起作用,为什么这不起作用?我也被告知解决方案如下

var func =jane.describe.bind(jane);
func();

我不明白,这个函数的“绑定”属性是什么,为什么将“jane”传递给绑定属性?

【问题讨论】:

    标签: javascript scope extract global chain


    【解决方案1】:

    这将不起作用,因为this 的上下文发生了变化。当您使用绑定时,您将对象jane 传递给bind,因此当您调用describe 并使用this 时,它引用jane

    根据文档:

    bind() 方法创建一个新函数,在调用该函数时,将其 this 关键字设置为提供的值,并在调用新函数时提供的任何参数之前具有给定的参数序列。

    阅读材料

    bind

    【讨论】:

      最近更新 更多