English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
객체는属性와메서드집합으로 구성된 데이터 타입.
또한 많은 다른 프로그래밍 언어와 마찬가지로, JavaScript의 객체는 현실生活中的 객체와 비교할 수 있습니다.
JavaScript에서는 대부분의 것이 객체입니다:
문자열은 객체가 될 수 있습니다(넣어주는 키워드를 사용하면)
숫자는 객체가 될 수 있습니다(넣어주는 키워드를 사용하면)
부울 값은 객체가 될 수 있습니다(넣어주는 키워드를 사용하면)
날짜는 항상 객체입니다
수학은 영원히 객체입니다
배열은 항상 객체입니다
정규 표현식은 항상 객체입니다
函数永远是对象
Object就是对象
除原语外,所有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 | 乔达里 |
age | 22 |
location | 신德里 |
您将在下一章中了解有关属性的更多信息。
方法是作为对象属性值的函数,因此是对象可以执行的任务。
方法存储在属性中作为函数定义.
属性 | 适当的价值 |
---|---|
firstName | 维沙尔 |
lastName | 乔达里 |
age | 22 |
location | 신德里 |
getName | function() {return this.firstName} + " " + this.lastName;} |
注意:方法是作为属性存储的函数。
JavaScript有许多预定义的对象。另外,您可以创建自己的对象。
有多种创建新对象的方法:
다음과 같이 사용합니다:对象常量,它使用大括号:{}
다음과 같이 사용합니다:对象构造函数,它使用new Object()
或者,您可以先创建一个생성자 ,然后示例化一个调用该函数的对象
다음과 같이 사용합니다:对象常量是创建JavaScript对象的最简单方法。
다음과 같이 사용합니다:对象常量,您可以在一个语句中定义和创建一个对象。
下面的示例创建一个具有四个属性的新JavaScript对象:
var user = {firstName: "비쉬알", lastName: "조다리", age:22, location: "뉴델리"};테스트 보자‹/›
对象定义可以跨越多行:
var user = { firstName: "维샬", lastName : "乔达里", age : 22, location : "신德里" };테스트 보자‹/›
다음과 같이 사용합니다:对象构造函数这是创建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에서는 원시 값이 아니라 객체와 배열만 변경 가능합니다.
변경 가능 객체는 생성된 후에도 상태를 수정할 수 있는 객체입니다.
불변객체는 생성된 후에도 상태를 변경할 수 없는 객체입니다.
문자열와숫자는불변이를 통해 이해해 보겠습니다:
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테스트 보자‹/›