JavaScript 객체 연구 노트
객체는 JavaScript의 기본 단위이며 실제로는 모든 것이 객체이며 그 기능은 매우 강력합니다. 독특한 스타일을 가지고 있을 뿐만 아니라 독특한 기능도 가지고 있습니다.
1. 참조
참조의 개념은 객체의 실제 위치를 가리키는 포인터입니다. 아래 예를 참조하세요.
var items = new Array("abc","def","hig"); //创建此数组的引用 var Ref = items; items.push("klm"); alert(Ref.lenth); //此处应该显示4
그러나 문자열인 경우 다른 상황이 발생합니다. 아래 코드를 참조하세요.
var items = "abc"; var Ref = items; items += "def"; //这里创建了一个新对象,而非原对象的修改。
이제 Ref와 항목이 다른 지점을 가리킵니다. . 물체.
2. 함수 오버로딩
JS의 각 함수에는 모든 매개변수를 받는 의사 배열인 가변 인수가 있습니다. 수정할 수 없지만 길이 속성이 있기 때문에 "유사"인 이유입니다. 다음 예를 살펴보겠습니다.
function myFun(num1,num2) { if(arguments.length == 2) { alert("我有两个参数"); } if(arguments.length == 1) { alert("我有一个参数"); } }
다음으로 myFun("abc"); myFun("abc","def"); 함수를 호출하고 차이점이 무엇인지 살펴보겠습니다. 이건 원래 함수 오버로딩입니다 :)
3. 범위
자바스크립트에서는 범위가 블록(while, if, for)이 아닌 함수별로 구분됩니다. 이로 인해 일부 코드를 이해하는 데 문제가 발생할 수 있습니다. 자세한 내용을 설명하기 위해 다음 예를 살펴보겠습니다.
var temp="oldTemp" //全局变量 if(true) { var temp = "newTemp" //这里还在全局中 } alert(temp == "newTemp") //发现相等
하지만 함수에서 임시 변수를 선언하고 변경하면 효과가 완전히 달라집니다. 예를 참조하세요.
var temp="oldTemp" ; //全局变量 function test() { var temp = "newTemp"; } test(); alert(temp == "newTemp") ; //发现不相等
JS에서 전역 변수는 window 객체의 속성입니다. 위의 예에서 전역 변수 temp == window.temp 또한 특정 변수에 선언이 없으면 자동으로 선언이 됩니다. 전역 변수이지만 특정 함수 내에서만 사용되는 경우가 많습니다.
4. 클로저
클로저는 외부 함수가 종료되더라도 내부 함수가 주변 함수의 변수를 참조할 수 있다는 의미입니다. 아래 예를 참조하세요.
function AddNum(num1) { return function (num2) { return num1 + num2; } } var temp = AddNum(4); //传入第一个参数,然后AddNum消失 var temp2 = temp(5); //传入第二个参数,然后相加,返回9 alert(temp2);
이 예는 클로저의 개념을 매우 잘 구현하고 있으며 특별한 경우이므로 확실히 이런 방식으로 사용되지는 않습니다.
5. 컨텍스트 객체
컨텍스트 객체는 항상 현재 코드가 위치한 객체를 가리키는 변수를 통해 반영됩니다. 아래 코드를 보세요:
var obj ={ yes:function(){ this.val = true; }, no:function(){ this.val = false; } } alert(obj.val == null); //这里我们发现对象obj没有val属性 obj.yes(); //执行yes函数,obj有了val属性 alert(obj.val == true); window.no = obj.no //把obj的no函数传给window对象 window.no(); alert(obj.val == true) ; //发现没有变化 alert(window.val == false) //window里的val变为false;
여기에서는 이해하기 쉽지 않습니다. 다행히 JS에서는 호출 메서드를 제공합니다. 아래 예를 참조하세요.
function changeColor(color) { this.style.color = color; } changeColor("Red"); //这里不行,因为window对象没有style属性 var temp = document.getElementById("temp"); changeColor.call(temp,"White"); //这里注意call的用法
호출 메서드는 컨텍스트 개체를 첫 번째 매개변수로 설정하고 다른 매개변수를 원래 함수의 매개변수로 설정합니다.
6. 객체
이제 막 주제에 들어섰지만 이전 개념으로는 실제로 이 작품에는 많은 내용이 없습니다. 예제를 직접 살펴보겠습니다.
var obj = new Object(); //创建一个对象obj obj.val = 5; //创建属性obj,并为其赋值 obj.click = function() //创建函数 { alert("我被单击了"); }
위 코드는 다음 코드와 동일합니다.
var obj = { val : 5, click: function(){ alert("我被单击了"); } }
다른 객체지향 언어와 달리 JS에는 클래스 개념이 없습니다. 언어에서는 기본적으로 특정 클래스의 인스턴스를 인스턴스화해야 하지만 JS에서는 접근 방식이 다릅니다. 모든 함수를 객체로 인스턴스화할 수 있습니다. 먼저 간단한 개체를 만듭니다.
function User(name) { this.name = name; } var temp = new User("张三"); alert(temp.name);
위 개체 User가 함수로만 사용된다면 어떨까요?
User("只作为函数使用"); alert(window.name);
이 컨텍스트는 window 객체가 됩니다.
7. 객체 메서드
공용 메서드는 객체의 컨텍스트에서 최종 사용자가 액세스할 수 있습니다. 여기서 우리는 프로토타입 속성을 이해해야 합니다. 아래 코드를 참조하세요.
function User(name,age) { this.name = name; this.age = age; } User.prototype.getName = function(){ return this.name}; var user = new User("张三",25); alert(user.getName());
공용 메서드를 동적으로 생성할 수도 있습니다. 아래 코드를 참조하세요.
function User(name,age) { this.name = name; this.age = age; this.getName = function(){ return this.name}; } var user = new User("张三",25); alert(user.getName());
동적으로 생성된 메서드는 코드가 처음 컴파일될 때 생성되지 않습니다. 이 기술은 프로토타입을 더 비싸게 만드는 데 사용되지만 더 강력하고 유연합니다.
위 내용은 자바스크립트 객체 학습노트 내용입니다. 더 많은 관련 내용은 PHP 중국어 홈페이지(www.php.cn)를 주목해주세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











WebSocket과 JavaScript: 실시간 모니터링 시스템 구현을 위한 핵심 기술 서론: 인터넷 기술의 급속한 발전과 함께 실시간 모니터링 시스템이 다양한 분야에서 널리 활용되고 있다. 실시간 모니터링을 구현하는 핵심 기술 중 하나는 WebSocket과 JavaScript의 조합입니다. 이 기사에서는 실시간 모니터링 시스템에서 WebSocket 및 JavaScript의 적용을 소개하고 코드 예제를 제공하며 구현 원칙을 자세히 설명합니다. 1. 웹소켓 기술

PHP의 요청 객체는 클라이언트가 서버로 보낸 HTTP 요청을 처리하는 데 사용되는 객체입니다. Request 객체를 통해 요청 메소드, 요청 헤더 정보, 요청 매개변수 등과 같은 클라이언트의 요청 정보를 얻어 요청을 처리하고 응답할 수 있습니다. PHP에서는 $_REQUEST, $_GET, $_POST 등과 같은 전역 변수를 사용하여 요청된 정보를 얻을 수 있지만 이러한 변수는 객체가 아니라 배열입니다. 요청사항을 보다 유연하고 편리하게 처리하기 위해

MySQL 쿼리 결과 배열을 객체로 변환하는 방법은 다음과 같습니다. 빈 객체 배열을 만듭니다. 결과 배열을 반복하고 각 행에 대해 새 개체를 만듭니다. foreach 루프를 사용하여 각 행의 키-값 쌍을 새 개체의 해당 속성에 할당합니다. 개체 배열에 새 개체를 추가합니다. 데이터베이스 연결을 닫습니다.

JavaScript 튜토리얼: HTTP 상태 코드를 얻는 방법, 특정 코드 예제가 필요합니다. 서문: 웹 개발에서는 서버와의 데이터 상호 작용이 종종 포함됩니다. 서버와 통신할 때 반환된 HTTP 상태 코드를 가져와서 작업의 성공 여부를 확인하고 다양한 상태 코드에 따라 해당 처리를 수행해야 하는 경우가 많습니다. 이 기사에서는 JavaScript를 사용하여 HTTP 상태 코드를 얻는 방법과 몇 가지 실용적인 코드 예제를 제공합니다. XMLHttpRequest 사용

JavaScript 및 WebSocket: 효율적인 실시간 일기 예보 시스템 구축 소개: 오늘날 일기 예보의 정확성은 일상 생활과 의사 결정에 매우 중요합니다. 기술이 발전함에 따라 우리는 날씨 데이터를 실시간으로 획득함으로써 보다 정확하고 신뢰할 수 있는 일기예보를 제공할 수 있습니다. 이 기사에서는 JavaScript 및 WebSocket 기술을 사용하여 효율적인 실시간 일기 예보 시스템을 구축하는 방법을 알아봅니다. 이 문서에서는 특정 코드 예제를 통해 구현 프로세스를 보여줍니다. 우리

PHP에서 배열은 순서가 지정된 시퀀스이며 요소는 인덱스로 액세스됩니다. 객체는 new 키워드를 통해 생성된 속성과 메서드가 있는 엔터티입니다. 배열 액세스는 인덱스를 통해 이루어지며, 객체 액세스는 속성/메서드를 통해 이루어집니다. 배열 값이 전달되고 객체 참조가 전달됩니다.

JavaScript에서 HTTP 상태 코드를 얻는 방법 소개: 프런트 엔드 개발에서 우리는 종종 백엔드 인터페이스와의 상호 작용을 처리해야 하며 HTTP 상태 코드는 매우 중요한 부분입니다. HTTP 상태 코드를 이해하고 얻는 것은 인터페이스에서 반환된 데이터를 더 잘 처리하는 데 도움이 됩니다. 이 기사에서는 JavaScript를 사용하여 HTTP 상태 코드를 얻는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 1. HTTP 상태 코드란 무엇입니까? HTTP 상태 코드는 브라우저가 서버에 요청을 시작할 때 서비스가

C++에서는 함수가 객체를 반환할 때 주의해야 할 세 가지 사항이 있습니다. 객체의 수명 주기는 메모리 누수를 방지하기 위해 호출자가 관리합니다. 매달린 포인터를 피하고 메모리를 동적으로 할당하거나 개체 자체를 반환하여 함수가 반환된 후에도 개체가 유효한지 확인하세요. 컴파일러는 성능을 향상시키기 위해 반환된 개체의 복사 생성을 최적화할 수 있지만 개체가 값 의미 체계에 따라 전달되는 경우 복사 생성이 필요하지 않습니다.
