Java C ++와 같은 전통적인 객체 지향 언어를 배우고 나면 JavaScript, 특히 JavaScript의 소위 객체 기능으로 전송할 때 약간 불편합니다. 그래서 나는 학습과 이해를 촉진하기 위해 아래의 몇 가지 개념적인 것들을 분류했으며, 일부 Java 객체 지향 지식과 함께 설명 할 것입니다.
먼저 몇 가지 개념을 이해해 봅시다.
1. 우선, eCMAScript에서 객체는 무엇을 참조합니까? ECMAScript에는 5 가지 간단한 데이터 유형이 있습니다 : 정의되지 않은, null, 부울, 번호, 문자열. 복잡한 데이터 유형, 즉 객체도 있습니다.
2. 참조 유형-자바의 클래스 개념
참조 유형 값 --- 자바의 객체의 개념
3. 기능 ---- 자바의 방법 개념
4.var --- 변수의 연산자를 선언합니다. JS 변수는 느슨한 유형이므로 느슨한 것은 데이터를 저장하는 데 사용될 수 있음을 의미합니다. 변수는 자리 표시자를 나타내는 데만 사용되므로 변수는 String, int 및 var를 지정할 필요가 없습니다. 객체는 var로 선언 할 수 있습니다.
5. Object (), 란 무엇인가 --- Java의 물체의 생성자, JS의 물체의 생성자.
물체
JS는 속성과 방법을 동적으로 추가 할 수 있습니다.
예를 들어 객체 인스턴스를 만듭니다
var obj = new Object();
변수 OBJ는 새로운 객체 ()의 대상입니다.
다음:
var obj = new Object (); obj.name = 'zeng'; obj.age = 12; obj.fun = function () {console.log (this.name+this.age);}그러나 이것은 매우 캡슐화가 아니므로 객체 문자 그대로 표현이 더 자주 사용됩니다.
var obj = {name : 'zeng', age : 12, fun : function () {console.log (this.name+this.age); }} obj.fun (); // 인쇄 : ZENG12객체 속성에 대한 액세스 :
1. 브래킷을 사용하십시오
console.log(obj["name"]);
2. 포인트 사용,이 방법을 사용하는 것이 좋습니다.
console.log(obj.name );
기능
기능은 모든 언어의 중요한 부분입니다. 함수는 js라고합니다. 또한 Java 방법과 C 언어 기능이라는 것을 이해할 수 있습니다. 그러나 선언 및 사용 측면에서 JS의 기능은 매우 다를 수 있습니다.
함수의 예 :
function fun () {return "example";} console.log (fun ()); // 출력 : '예'또한 가능합니다 :
var fun = function () {return "expressions를 사용하여 함수 만들기"}; console.log (fun ()); // 출력 : "표현식을 사용하여 함수 만들기"위의 예에서는 함수에 함수 이름이없고 하나의 변수 이름 만 재미 있고 표현식 끝에 다른 이름이 있습니다. 세미콜론,
변수를 선언하는 표현으로 이해할 수 있습니다. 다른 변수를 선언하는 것은 다음과 같이 작성됩니다.
var name = "Zeng"; // 가변 이름과 세미콜론이 있습니다
매개 변수로 예를 들어 봅시다 :
function fun () {반환 인수 [0] + 인수 [1] + 인수 [2];} console.log (fun ( "this is", "a", "example")); // 출력 : "이것은 예입니다"조금 이상하지 않습니까? 우선, 내가 만든 함수에는 매개 변수가 없습니다. 호출 될 때 매개 변수가 주어지고 기능에서 매개 변수를 얻고 반환 할 수 있습니다.
실제로, 여기서, 우리는 JS 함수가 몇 가지 매개 변수를 전달하지 않으며 매개 변수 유형이 어떤 유형인지 신경 쓰지 않는다는 점을 지적해야합니다! 그 이유는 함수의 내부 수신 매개 변수가 배열에 저장되기 때문입니다!
배열은 위의 인수입니다. 물론, 배열은 몇 가지 매개 변수를 전달하는 데 신경 쓰지 않습니다. 매개 변수가 있으면 매개 변수를 추가하고 매개 변수가 없으면 null이됩니다.
이 기능을 예로 사용할 수 있습니다.
모방 방법의 과부하-다른 반응을 수행하기 위해 다른 매개 변수를 사용
function fun () {if (arguments.length == 1) {반환 인수 [0]*10; } if (arguments.length == 2) {return (인수 [0]+인수 [1])*10; } return 10;} console.log (fun (11,111)); // 리턴 1220! ! ! !과부하 없음 :
위의 예는 모방 함수의 과부하입니다. 왜 모방해야합니까? 곧 다른 매개 변수로 여러 기능을 만들 수 있습니다.
function fun (num1) { "매개 변수 만 갖는 재미"} function fun (num1, num2) { "두 매개 변수로 재미있는";} console.log (fun (11)); // "두 매개 변수로 재미"출력하나의 매개 변수가있는 함수라고 명확하게 호출되지만 실제로 두 개의 매개 변수로 실행됩니다. 이유 : JS는 동일한 이름의 두 함수를 정의하며 이름은 나중에 정의 된 함수에만 속합니다! ! ! 따라서 JS에는 과부하 기능이 없습니다.
함수 이름은 포인터입니다.
var fun = function (num1, num2) {return num1+num2;}; var new_fun = fun; fun = null; // 함수를 nullconsole.log (new_fun (10,20))로 설정합니다. // 출력 : 30Console.log (Fun (10,20)); // 예외 : 재미는 기능이 아닙니다fun = null이지만 볼 수 있습니다. 이 var new_fun = 재미; 즉, 포인터는 New_Fun을 가리키 었으므로 New_Fun () 함수를 여전히 실행할 수 있고 기능 본문은 Nulled가 아닙니다.
함수는 값으로도 사용할 수 있습니다.
함수 add (fun, num) {return fun (num);} 함수 add_10 (num) {return num+10;} console.log (add (add_10,200)); // 출력 : 210다음과 같이 설명 할 수 있습니다.
함수 추가 (함수, 매개 변수) {return function (전달 된 매개 변수);}인수
다음은 재귀 예입니다
function fun (num) {if (num <= 1) {console.log (num); 반환 1; } else {console.log (num); Num * arguments.callee (num-1)를 반환합니다. }} console.log (fun (3)); // 출력 6