예제를 작성하고, 전화를 설명하고, 적용하고, 방법을 참조 할 수 있도록 적용하고 바인딩하십시오. 특정 내용은 다음과 같습니다
<! doctype html> <html> <head> <meta charset = "utf-8"> <title> </title> <script type = "text/javaScript"> function man (이름, 섹스, 나이) {this.name = name; this.sex = 섹스; this.age = age; this.say = function (school, zhuanye) {console.log (this.name + "," + this.sex + ", 올해" + this. San ","Male ", 26); var Woman = New Woman ("Xiaohong ","Female ", 18); Man.say ( 'Tsinghua University', 'Excavator'); Man.say.call (여성,"Lanxiang 기술 학교 ","Electric Welding "); Man.say.Apply ["New Oriental ","MARS "); Man.say.bind (여성) ( "Deyun Club", "Pop Music");왜? 전화, 적용, 바인딩은 무엇을합니까? 왜 이것을 배우나요?
일반적 으로이 환경을 지정하는 데 사용되며 이러한 문제는 일반적으로 학습 전에 발생합니다.
var a = {user : "Dream Chasing", fn : function () {console.log (this.user); }} var b = a.fn; b (); //한정되지 않은Object A에서 사용자에게 어떤 문제가 있지만 정의되지 않은가요? A.FN ()을 직접 실행해도 괜찮습니다.
var a = {user : "chasing dreams", fn : function () {console.log (this.user); }} a.fn (); // 꿈을 쫓습니다이것이 여기에 인쇄 할 수있는 이유는 여기에서 기능을 가리키기 때문입니다. 왜 위의 점이 A를 가리키지 않습니까? 이 가리키는 문제를 이해해야한다면 JS 에서이 포인팅에 대한 철저한 이해를 참조하십시오.이 기사를 암기 할 필요가 없습니다.
이 방법은 우리의 목적을 달성 할 수 있지만 때로는이 개체를 다른 변수에 저장해야하므로 다음 방법을 사용할 수 있습니다.
1. 전화 ()
var a = {user : "잡기 꿈", fn : function () {console.log (this.user); // Dreams}}} var b = a.fn; b.call (a);B에 환경을 추가 할 첫 번째 매개 변수를 추가하면이 지점을 해당 객체에 넣으십시오.
첫 번째 매개 변수 외에도 호출 메소드는 다음과 같이 여러 매개 변수를 추가 할 수 있습니다.
var a = {user : "잡기 꿈", fn : function (e, ee) {console.log (this.user); // Dreams Console.Log (E+EE); // 3}} var b = a.fn; b.call (a, 1,2);2. apply ()
적용 메소드는 통화 메소드와 다소 유사하므로 이것의 포인팅을 변경할 수도 있습니다.
var a = {user : "잡기 꿈", fn : function () {console.log (this.user); // 꿈을 잡는다}} var b = a.fn; b.apply (a);마찬가지로 적용은 여러 매개 변수를 가질 수 있지만 차이점은 두 번째 매개 변수가 다음과 같이 배열이어야한다는 것입니다.
var a = {user : "잡기 꿈", fn : function (e, ee) {console.log (this.user); // Dreams Console.Log (E+EE); // 11}} var b = a.fn; b.apply (a, [10,1]);또는
var a = {user : "잡기 꿈", fn : function (e, ee) {console.log (this.user); // Dreams Console.Log (E+EE); // 520}} var b = a.fn; a.fn; var arr = [500,20]; B. Apply (a, arr); // 첫 번째 호출 및 적용의 매개 변수가 null로 작성되면 창 개체를 가리 킵니다. var a = {user : "Dream Chasing", fn : function () {console.log (this); // wind3. bind ()
바인드 방법은 통화 및 적용 메소드와 다소 다르지만이 방향을 변경하는 데 사용할 수 있습니다.
먼저 차이점에 대해 이야기합시다.
var a = {user : "Dream Chasing", fn : function () {console.log (this.user); }} var b = a.fn; b.bind (a);코드가 인쇄되지 않았다는 것을 알았습니다. 예, 바인드와 콜 및 적용 방법의 차이점입니다. 실제로, Bind 메소드는 수정 된 함수를 반환합니다.
var a = {user : "Dream Chasing", fn : function () {console.log (this.user); }} var b = a.fn; var c = b.bind (a); console.log (c); // function () {[기본 코드]}그래서 기능 c를 실행하여 객체에서 사용자를 인쇄 할 수 있는지 확인합시다.
var a = {user : "잡기 꿈", fn : function () {console.log (this.user); // Dreams}}} var b = a.fn; var c = b.bind (a); c ();OK, BAND에는 여러 파라미터가있을 수 있으며 실행할 때 매개 변수를 다시 추가 할 수 있지만 매개 변수는 공식 매개 변수 순서로 수행됩니다.
var a = {user : "잡기 꿈", fn : function (e, d, f) {console.log (this.user); // Dreams Console.Log (E, D, F); // 10 1 2}} var b = a.fn; var c = b.bind (a, 10); c (1,2);요약 : 컨텍스트에서 이것을 변경 하고이 기능을 즉시 실행하십시오. 바인드 방법을 사용하면 해당 함수가 원할 때마다 호출 될 수 있으며 실행될 때 매개 변수를 추가합니다. 이것은 그들의 차이이며 실제 상황에 따라 사용하도록 선택합니다.
위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.