JavaScript개발에서 js 객체를 사용하는 것은 매우 흔한 일인데, js 객체를 생성하는 방법은 여러 가지가 있으므로 오늘은 js 객체를 생성하는 다양한 방법에 대해 이야기하겠습니다.
JavaScript의 객체에는 여러 가지 방법이 있습니다. 생성하려면:
1. 내장 객체 사용 JavaScript 사용 가능 -객체에서 두 가지 유형으로 나눌 수 있습니다:
1, 문자열, 개체, 함수 등과 같은 JavaScript 언어 기본 개체(언어 수준 개체)
2, 창과 같은 JavaScript 런타임 호스트 개체(환경 호스트 수준 개체) , 문서, 본문 대기.
생성자 메서드를 통해 새 객체를 인스턴스화한다는 것입니다. 예:
var str = new String("实例初始化String"); var str1 = "直接赋值的String"; var func = new Function("x","alert(x)");//示例初始化func var o = new Object();//示例初始化一个Object
2. JSON 기호 사용
JSON이란 무엇인가요? JSON(JavaScript Object Notation)은
JavaScript 객체의 이름을 따서 명명되었습니다. 을 작성하고 구문 분석 및 생성도 쉽습니다. 이는 "JavaScript 프로그래밍 언어, 표준 ECMA-262 제3판 - 1999년 12월"의 하위 집합을 기반으로 합니다. JSON은 완전히 언어 독립적인 텍스트 형식이므로 데이터 교환에 이상적인 형식입니다.
JSON은 JavaScript 버전으로 ActionScript, C, C#, ColdFusion, E, Java, JavaScript, ML, ObjectiveCAML, Perl, PHP, Python, Rebol, Ruby, Lua 등은 JSON을 Ajax 개발에 선호되는 솔루션으로 만듭니다.
JSON을 구성하는 방법에는 두 가지가 있습니다. 하나는 객체, 레코드, 구조, 사전, 해시 테이블, 키 목록 또는 다른 언어의 연관으로 이해되는 "키/값 쌍"의 간단한 컬렉션을 사용하는 것입니다. 배열 등, 다른 하나는 대부분의 언어가 배열로 이해하는 정렬된 값 목록을 사용합니다.
일반적으로 사용되는 생성 방법은 첫 번째 방법으로 "키/값 쌍"의 모음 형태입니다. 이 형식에서 개체는 "{"(왼쪽 대괄호)로 시작하고 "}"(오른쪽 대괄호)로 끝납니다. 각 "이름" 뒤에는 ":"(콜론)이 오고 "키/값" 쌍은 ","(쉼표)로 구분됩니다.
JSON은 다음과 같은 특징을 가지고 있습니다:
1, 단순 JSON
{name:"刘德华",age:"25",sex:"男"}
2, JSON 값 유형JSON 값은 숫자, 부동 소수점, 문자 등과 같은 간단한
데이터 유형일 수도 있고 배열일 수도 있습니다. 그리고 객체. 예를 들어, 멤버 키 값으로 배열이 있는 JSON:
{member:[{name:"刘德华"},{name:"郭富城"},{name:"张学友"},{name:"黎明"}]} { book:[{name:"三国演义"},{name:"西游记"},{name:"水浒传"},{name:"红楼梦"}], author:[{name:"罗贯中"},{name:"吴承恩"},{name:"施耐安",{name:"曹雪芹"}}] }
3, JavaScript에서 JSON 사용 JSON은 JavaScript 기본 형식입니다. 즉, JavaScript에서 JSON 데이터를 처리하는 데 특별한 API나 툴킷이 필요하지 않습니다. JavaScript 기본적으로 JSON은 객체로 처리됩니다.
개체를 변수에 전달합니다. 예:
var somebooks = { book:[{name:"三国演义"},{name:"西游记"},{name:"水浒传"},{name:"红楼梦"}], author:[{name:"罗贯中"},{name:"吴承恩"},{name:"施耐安",{name:"曹雪芹"}}] }JSON의 각 "키"는 개체의 속성과 동일합니다. 예를 들어 book의 첫 번째 항목에 액세스하려면 JavaScript에서 간단히 "somebooks.key"를 사용하면 됩니다. book [0].name'을 구매하시면 '삼국지연의'의 가치를 얻으실 수 있습니다.
JSON 문자열을 객체로 변환할 수 있을 뿐만 아니라 객체를 JSON 문자열로 "컴파일"하여 JavaScript에서 객체 전송을 용이하게 할 수 있습니다. 예:
var Animals = new Object(); Animals.name = "dog"; Animals.sex = "Male"; Animals.age = "2";Animals 개체는 직렬화하여 전송할 수 없습니다. Animals 개체를 JSON 문자열, 즉 "{name:"dog",sex:"Male",age:"2"}"로 변환합니다. 이런 방식으로 JSON 문자열이 HTTP 요청의 매개변수로 전달되어 Animals 객체를 직렬화하고 전송하는 목적을 달성합니다.
var myObject = {nickname:"my girlfried",name:"big pig"};JSON은 실제로 JavaScript 개체와 문자열 간의 변환을 위한 프로토콜 역할을 합니다. JSON의 "모양"은 문자열로 볼 수 있으므로 JSON은 JavaScript 개체 전송에서 특정 역할을 할 수 있습니다. 예를 들어, strObject 객체를 전송용 문자열로 변환한 다음, 대상에 도달한 후 eval 메서드를 통해 객체로 복원합니다.
function test (o) { alert (o.name) } var strObject = '{nickname:"my girlfriend",name:"big pig"}'; test (eval("(" + strObject + ")"));
三、自定义对象构造
创建高级对象构造有两种方式:使用“this”关键字构造、使用原型prototype构造。如:
//使用this关键字定义构造的上下文属性 function Girl() { this.name = "big pig"; this.age = 20; this.standing; this.bust; this.waist; this.hip; } //使用prototype function Girl(){} Girl.prototype.name = "big pig"; Girl.prototype.age = 20; Girl.prototype.standing; Girl.prototype.bust; Girl.prototype.waist; Girl.prototype.hip; alert(new Girl().name);
上例中的两种定义在本质上没有区别,都是定义“Girl”对象的属性信息。“this”与“prototype”的区别主要在于属性访问的顺序。如:
function Test() { this.text = function() { alert("defined by this"); } } Test.prototype.test = function() { alert("defined by prototype"); } var _o = new Test(); _o.test();//输出“defined by this”
当访问对象的属性或者方法是,将按照搜索原型链prototype chain的规则进行。首先查找自身的静态属性、方法,继而查找构造上下文的可访问属性、方法,最后查找构造的原型链。
“this”与“prototype”定义的另一个不同点是属性的占用空间不同。使用“this”关键字,示例初始化时为每个实例开辟构造方法所包含的所有属性、方法所需的空间,而使用“prototype”定义,由于“prototype”实际上是指向父级的一种引用,仅仅是个数据的副本,因此在初始化及存储上都比“this”节约资源。
相关推荐:
在js语言中,一切都对象”,而且创建对象的方式也有很多种,所以今天我们做一下梳理最简单
위 내용은 js 객체를 생성하는 다양한 방법이 자세히 설명되어 있습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!