English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

JavaScript 기본 가이드

JavaScript 객체

JavaScript 함수

JS HTML DOM

JS 브라우저 BOM

AJAX 기본 가이드

JavaScript 참조 설명서

JavaScript 객체 생성

객체는属性메서드집합으로 구성된 데이터 타입.

또한 많은 다른 프로그래밍 언어와 마찬가지로, JavaScript의 객체는 현실生活中的 객체와 비교할 수 있습니다.

JavaScript에서는 대부분의 것이 객체입니다:

  • 문자열은 객체가 될 수 있습니다(넣어주는 키워드를 사용하면)

  • 숫자는 객체가 될 수 있습니다(넣어주는 키워드를 사용하면)

  • 부울 값은 객체가 될 수 있습니다(넣어주는 키워드를 사용하면)

  • 날짜는 항상 객체입니다

  • 수학은 영원히 객체입니다

  • 배열은 항상 객체입니다

  • 정규 표현식은 항상 객체입니다

  • 函数永远是对象

  • Object就是对象

除原语外,所有JavaScript值都是对象。

JavaScript基元

原始值是没有属性或方法的值。

在JavaScript中,有5种原始类型:

  • string

  • number

  • boolean

  • null

  • undefined

对象是变量

JavaScript变量只能包含一个值。

var user = "oldtoolbag.com";
테스트 보자‹/›

对象也是变量,但是对象可以包含许多值。

可以将对象写为name:value对,并用冒号(:)分隔。

var user = {firstName: "비쉬알", lastName: "조다리", age:22, location: "뉴델리"};
테스트 보자‹/›

JavaScript对象是无序属性的集合。

对象属性

属性是对象中名称和值之间的关联,并且可以包含任何数据类型。

属性通常是指对象的特征。

属性属性值
firstName维沙尔
lastName乔达里
age22
location신德里

您将在下一章中了解有关属性的更多信息。

对象方法

方法是作为对象属性值的函数,因此是对象可以执行的任务。

方法存储在属性中作为函数定义.

属性适当的价值
firstName维沙尔
lastName乔达里
age22
location신德里
getNamefunction() {return this.firstName} + " " + this.lastName;}

注意:方法是作为属性存储的函数。

创建一个JavaScript对象

JavaScript有许多预定义的对象。另外,您可以创建自己的对象。

有多种创建新对象的方法:

  • 다음과 같이 사용합니다:对象常量,它使用大括号:{}

  • 다음과 같이 사용합니다:对象构造函数,它使用new Object()

  • 或者,您可以先创建一个생성자   ,然后示例化一个调用该函数的对象

使用对象常量

다음과 같이 사용합니다:对象常量是创建JavaScript对象的最简单方法。

다음과 같이 사용합니다:对象常量,您可以在一个语句中定义和创建一个对象。

下面的示例创建一个具有四个属性的新JavaScript对象:

var user = {firstName: "비쉬알", lastName: "조다리", age:22, location: "뉴델리"};
테스트 보자‹/›

对象定义可以跨越多行:

var user = {
  firstName: "维샬",
  lastName : "乔达里",
  age : 22,
  location : "신德里"
};
테스트 보자‹/›

使用new Object()

다음과 같이 사용합니다:对象构造函数这是创建JavaScript对象的另一种方法。

下面的示例创建一个具有四个属性的新JavaScript对象:

var user = new Object();
user.firstName = "维沙르";
user.lastName = "乔达里";
user.age = 22;
user.location = "New Delhi";
테스트 보자‹/›

위의 두 예제는 완전히 동일합니다. new Object()를 사용하지 않아도 됩니다.

다음과 같이 사용합니다:객체 리터럴보다 일반적이고 선호되는 방법입니다. 불일치와 예기치 않은 결과가 발생할 가능성이 낮습니다.

생성자를 사용하면

또한, 다음 두 단계를 통해 객체를 생성할 수 있습니다:

  • 다음과 같이 작성합니다:생성자객체 타입을 정의하는 것(대문자를 사용하는 것이 관행입니다)

  • new 키워드를 사용하여 객체를 생성하는 예제

아래의 예제는 객체 타입을 정의하는 데 사용하는 생성자를 작성합니다:

  function User(fname, lname, age, loc) {
   this.firstName = fname;
   this.lastName = lname;
   this.age = age;
   this.location = loc;
  }

지금 우리는 "New Delhi"라는 이름의 객체를 생성할 수 있습니다.user1의 객체를 다음과 같이 생성할 수 있습니다:

var user1 = new User("Vishal", "Jodari", 22, "New Delhi");
테스트 보자‹/›

이는 이 튜토리얼의 후반부에서 논의할 것입니다생성자.

JavaScript 객체는 변경 가능합니다.

변경 가능은 변경할 수 있는 변수입니다. JavaScript에서는 원시 값이 아니라 객체와 배열만 변경 가능합니다.

변경 가능 객체는 생성된 후에도 상태를 수정할 수 있는 객체입니다.

불변객체는 생성된 후에도 상태를 변경할 수 없는 객체입니다.

문자열숫자불변이를 통해 이해해 보겠습니다:

  var immutableString = "Hello";
  
  // 위의 코드에서 새로운 문자 값을 가진 객체를 생성했습니다.
  
  immutableString = immutableString + "World";
  
  // 지금 우리는 "World"를 현재 값에 추가합니다.

"immutableString"를 문자 값을 추가한 후 다음 사건이 발생합니다:

  • "immutableString"의 현재 값을 검색합니다.

  • "World"는 "immutableString"의 현재 값에 추가됩니다.

  • 그런 다음 결과 값을 새로운 메모리 블록에 할당합니다.

  • 지금, "immutableString" 객체는 새로 생성된 메모리 공간을 가리킵니다.

  • 이전에 생성된 메모리 공간은 현재 가비지 컬렉션에 사용할 수 있습니다.

객체는 변경 가능합니다: 그들은 참조를 통해而不是 값으로 주소를 찾습니다.

user가 객체라면 다음 문장은 해당 사용자의 복사본을 생성하지 않습니다:

  var x = user;  // 이는 user 복사본을 생성하지 않습니다.

객체 x는 user의 복사본이 아닙니다. 그것은 user입니다. x와 user는 동일한 객체입니다.

x에 대한 모든 변경은 user에도 반영됩니다, porque x와 user는 동일한 객체입니다.

var user = {firstName: "비쉬알", lastName: "조다리", age:22, location: "뉴델리"};
var x = user;
x.location = "Goa";// 이렇게 하면 x.location과 user.location 모두 변경됩니다
테스트 보자‹/›

객체 비교

JavaScript에서 객체는 참조 타입입니다. 두 개의 다른 객체가 동일한 속성을 가지더라도, 그들은 결코 같지 않습니다.

// 두 개의 변수, 두 개의 동일한 속성을 가진 다른 객체
var fruit = {name: "apple"};
var fruitbear = {name: "apple"};
fruit == fruitbear;  // 반환 false
fruit === fruitbear; // 반환 false
테스트 보자‹/›

동일한 객체 참조와 자신과의 비교만 하면 true를 얻습니다:

// 두 개의 변수, 하나의 객체
var fruit = {name: "apple"};
var fruitbear = fruit;  // fruit 객체 참조를 fruitbear에 할당합니다
// 여기서 fruit와 fruitbear는 동일한 객체를 가리킵니다
fruit == fruitbear; // 반환 true
fruit === fruitbear; // 반환 true
테스트 보자‹/›