이번에는 JSprototype 객체 사용 방법에 대한 튜토리얼을 가져오겠습니다. JSprototype 객체 사용 시 주의사항은 무엇인가요?
프로토타입을 통해 여러 인스턴스 간의 메서드 공유 문제를 해결했습니다. 다음으로 프로토타입과 프로토타입 체인의 내용을 알아봅니다.
function CreateObj(uName) { this.userName = uName; } CreateObj.prototype.showUserName = function(){ return this.userName; } var obj1 = new CreateObj('ghostwu'); var obj2 = new CreateObj('卫庄');
1. 각 함수에는 프로토타입 속성(prototype)이 있습니다. 이 속성은 위 그림의 첫 번째 녹색 선에 표시된 대로 constructor 함수의 프로토타입 개체(CreateObj.prototype)를 가리키는 포인터입니다. 2. 기본적으로 모든 프로토타입 객체는 자동으로 생성자 속성을 얻습니다. 이 속성의 기능은 위 그림의 두 번째 녹색 선과 같은 프로토타입 속성을 가리키는 함수를 포함합니다. 3. 모든 인스턴스(새 생성자를 통해 생성됨, 프로토타입 객체(예: CreateObj.prototype, 위 그림은 그리지 않음) 등)에는 암시적 프로토타입(
proto)이 포함되어 있습니다. 인스턴스.프로토타입 객체,
위 그림의 세 번째와 네 번째 줄에 표시된 것처럼 obj1의 생성자는 CreateObj이고 CreateObj의 프로토타입 개체는 CreateObj.prototype입니다. 따라서: obj1.proto === CreateObj.prototype //true
obj2.proto === CreateObj.prototype //true
4. 이에 값을 할당하는
속성 및 메서드를 생성자에 작성합니다. 예를 들어 userName은 객체에 할당된 속성이므로 두 객체 obj1 및 obj2에서 그립니다. userName
속성이 있습니다.
5. 프로토타입 객체에 작성한 메소드나 속성은 CreateObj.prototype.showUserName = function(){
return this.userName;
}
와 같이 프로토타입 객체에 그려야 합니다.
showUserName 메소드는 그림의 CreateObj.prototype 위에 그려져야 합니다
6. 객체가 속성과 메서드에 액세스할 때 해당 액세스 규칙이 호출됩니다(근접 원칙). 규칙은 다음과 같습니다.
인스턴스에 속성이나 메소드가 있으면 직접 사용하세요.
인스턴스에 속성이나 메서드가 없으면 인스턴스의 proto 포인터가 가리키는 프로토타입 개체를 따라 검색이 계속됩니다. 찾을 수 없으면 값이 정의되지 않습니다.
console.log( obj1.showUserName() ); //ghostwu console.log( obj2.showUserName() ); //卫庄
showUserName 메소드는 obj1 및 obj2에 존재하지 않으므로 proto를 따라 CreateObj.prototype 프로토타입 객체
에서 showUserName 메소드를 찾으세요.
CreateObj.prototype 프로토타입 객체에서 showUserName을 주석 처리하면 obj1.showUserName 및 obj2.showUserName이 오류를 보고합니다// CreateObj.prototype.showUserName = function(){
// return this.userName;
// }
function CreateObj(uName) {
this.userName = uName;
this.showUserName = function(){
return '100';
}
}
CreateObj.prototype.showUserName = function(){
return this.userName;
}
var obj1 = new CreateObj('ghostwu');
var obj2 = new CreateObj('卫庄');
console.log( obj1.showUserName() ); //100
console.log( obj2.showUserName() ); //100
생성자에서 이에 showUserName 메서드를 추가하면 obj1과 obj2가 이를 직접 호출합니다. 왜냐하면 이 두 메서드는 그림의 인스턴스에 그려지기 때문입니다. 따라서:
console.log( obj1.showUserName === obj2.showUserName ); //false
이제 생성자의 프로토타입 객체에 여러 인스턴스의 속성과 메소드를 작성하여 공유하는 원리를 이해할 수 있을 것입니다
프로토타입 체인이란 무엇입니까?
앞서 프로토타입 객체를 포함한 모든 인스턴스에는 암묵적인 프로토타입 proto가 있다고 했는데, CreateObj.prototype의 프로토타입 객체는 누구를 가리킬까요?
rreeeCreateObj.prototype.proto는 Object.prototype을 가리키며, 이는 합동 연산자
(===) 테스트를 통과한 후 true입니다. Object.prototype.proto는 NULL 모든 객체는 Object에서 상속되기 때문입니다.이 기사의 사례를 읽고 나면 방법을 마스터했다고 생각합니다. 더 흥미로운 정보를 보려면 PHP 중국어 웹사이트의 다른 관련 기사를 주목하세요! 추천 자료:react-router4.0은 리디렉션 및 404 기능을 구현합니다.
js에서 요소 스타일을 설정하는 단계에 대한 자세한 설명
위 내용은 JSprototype 객체 사용 튜토리얼의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

去掉重复并排序的方法:1、使用“Array.from(new Set(arr))”或者“[…new Set(arr)]”语句,去掉数组中的重复元素,返回去重后的新数组;2、利用sort()对去重数组进行排序,语法“去重数组.sort()”。

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于Symbol类型、隐藏属性及全局注册表的相关问题,包括了Symbol类型的描述、Symbol不会隐式转字符串等问题,下面一起来看一下,希望对大家有帮助。

怎么制作文字轮播与图片轮播?大家第一想到的是不是利用js,其实利用纯CSS也能实现文字轮播与图片轮播,下面来看看实现方法,希望对大家有所帮助!

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于对象的构造函数和new操作符,构造函数是所有对象的成员方法中,最早被调用的那个,下面一起来看一下吧,希望对大家有帮助。

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于面向对象的相关问题,包括了属性描述符、数据描述符、存取描述符等等内容,下面一起来看一下,希望对大家有帮助。

方法:1、利用“点击元素对象.unbind("click");”方法,该方法可以移除被选元素的事件处理程序;2、利用“点击元素对象.off("click");”方法,该方法可以移除通过on()方法添加的事件处理程序。

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于BOM操作的相关问题,包括了window对象的常见事件、JavaScript执行机制等等相关内容,下面一起来看一下,希望对大家有帮助。

foreach不是es6的方法。foreach是es3中一个遍历数组的方法,可以调用数组的每个元素,并将元素传给回调函数进行处理,语法“array.forEach(function(当前元素,索引,数组){...})”;该方法不处理空数组。


핫 AI 도구

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

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

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

Clothoff.io
AI 옷 제거제

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

인기 기사

뜨거운 도구

에디트플러스 중국어 크랙 버전
작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

Dreamweaver Mac版
시각적 웹 개발 도구

ZendStudio 13.5.1 맥
강력한 PHP 통합 개발 환경

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

mPDF
mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.
