JavaScript에서는 다음 방법을 사용하여 이 포인터를 변경할 수 있습니다. 바인딩: 이 값이 지정된 개체에 바인딩된 새 함수를 반환합니다. 호출 및 적용: 함수를 직접 호출하고 이 값을 지정할 수 있습니다. 화살표 함수: 이를 상위 범위에 암시적으로 바인딩합니다.
JavaScript에서 가리키는 this
를 변경하는 방법this
指向的方法
在 JavaScript 中,this
关键字引用当前执行上下文的当前对象。但是,有时候需要改变 this
的指向,以便在不同的对象上下文中使用相同的方法。以下是在 JavaScript 中改变 this
指向的几种方法:
1. 绑定(Bind)
bind()
方法返回一个新函数,该函数的 this
值已绑定到指定的对象。语法如下:
<code>function.bind(object)</code>
例如:
<code>const person = { name: 'John', greet: function() { console.log(`Hello, my name is ${this.name}`); } }; const boundGreet = person.greet.bind({ name: 'Mary' }); boundGreet(); // 输出:"Hello, my name is Mary"</code>
2. 调用(Call)和应用(Apply)
call()
和 apply()
方法直接调用一个函数,并允许您指定 this
值。语法如下:
<code>function.call(object, arg1, arg2, ...) function.apply(object, [arg1, arg2, ...])</code>
与 bind()
不同,call()
和 apply()
会立即执行函数。
例如:
<code>const person = { name: 'John' }; function greet(greeting) { console.log(`${greeting}, my name is ${this.name}`); } greet.call(person, 'Hello'); // 输出:"Hello, my name is John" greet.apply(person, ['Hello']); // 输出:"Hello, my name is John"</code>
3. 箭头函数
箭头函数(=>
)隐式地绑定 this
到其父级作用域。这意味着箭头函数内的 this
this
키워드는 현재 실행 중인 현재 개체를 나타냅니다. 문맥. 그러나 때로는 동일한 메소드가 다른 객체 컨텍스트에서 사용될 수 있도록 this
의 포인터를 변경해야 하는 경우가 있습니다. 다음은 JavaScript에서 this
의 지점을 변경하는 여러 가지 방법입니다. 🎜1. Bind(Bind)🎜🎜bind()
메서드는 새 값을 반환합니다. this
값이 지정된 개체에 바인딩된 함수입니다. 구문은 다음과 같습니다. 🎜<code>const person = { name: 'John', greet: () => { console.log(`Hello, my name is ${this.name}`); } }; person.greet(); // 输出:"Hello, my name is John"</code>🎜예: 🎜rrreee🎜🎜2. 호출 및 적용🎜🎜
call()
및 apply()
메서드 호출 함수를 직접 사용하고 this
값을 지정할 수 있습니다. 구문은 다음과 같습니다. 🎜rrreee🎜 bind()
와 달리 call()
및 apply()
는 함수를 즉시 실행합니다. 🎜🎜예: 🎜rrreee🎜🎜3. 화살표 함수🎜🎜화살표 함수(=>
)는 암시적으로 this
를 상위 역할 영역에 바인딩합니다. 즉, 화살표 함수 내부의 this
값은 항상 해당 함수를 생성한 개체를 가리킵니다. 🎜🎜예: 🎜rrreee위 내용은 js에서 이 포인터를 변경하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!