이 글의 내용은 _new 함수의 js 캡슐화와 새로운 키워드를 구현하는 방법(코드 테스트 포함)에 대한 내용이며, 필요한 친구들이 참고할 수 있기를 바랍니다. 당신을 도와줍니다.
1. 머리말
우리 모두 알고 있듯이 객체가 없으면 어떻게 해야 하나요? 그런 다음 새 것을 얻으십시오!
그럼 JS에서 새 객체를 생성할 때 new 키워드는 내부에서 어떤 역할을 할까요?
이제 네이티브 JS에서 새 키워드의 내부 작동 원리를 분석해 보겠습니다.
2. 원본 신규
먼저 새로운 개체를 살펴보겠습니다.
#🎜🎜 #
//创建Person构造函数,参数为name,age function Person(name,age){ this.name = name; this.age = age; } //实例化对象小明 xm = new Person('xiaoming',18); //打印实例化出来的对象小明 console.log(xm);인쇄 결과:
#🎜 🎜#
new 키워드의 내부 원리를 알면 _new 함수를 캡슐화할 수 있으며, 이를 new와 동일한 기능에 사용합니다. 예어.
_new 함수는 다음 매개변수를 전달해야 합니다.첫 번째 매개변수: 생성자 함수 이름 Func
두 번째 매개변수 및 후속 매개변수: 생성자의 매개변수# 🎜🎜#function _new(){ //1.拿到传入的参数中的第一个参数,即构造函数名Func var Func = [].shift.call(arguments); //2.创建一个空对象obj,并让其继承Func.prototype var obj = Object.create(Func.prototype); //3.执行构造函数,并将this指向创建的空对象obj Func.apply(obj,arguments) //4.返回创建的对象obj return obj }
캡슐화한 후, 캡슐화된 _new 함수를 테스트해 보겠습니다. 기본 new 키워드와 동일한 기능을 구현하는지 확인하세요.
//创建Person构造函数,参数为name,age function Person(name,age){ this.name = name; this.age = age; } function _new(){ //1.拿到传入的参数中的第一个参数,即构造函数名Func var Func = [].shift.call(arguments); //2.创建一个空对象obj,并让其继承Func.prototype var obj = Object.create(Func.prototype); //3.执行构造函数,并将this指向创建的空对象obj Func.apply(obj,arguments) //4.返回创建的对象obj return obj } xm = _new(Person,'xiaoming',18); console.log(xm);
테스트 결과:
#🎜 🎜#테스트 결과를 보면 _new 함수의 기능이 new 키워드와 완전히 일치하는 것을 알 수 있습니다.관련 추천:
js의 상속 방법은 무엇인가요? js에서 상속을 구현하는 여러 가지 방법 소개
js를 사용하여 작은 그림을 클릭하여 큰 그림을 표시하는 효과를 얻는 방법은 무엇인가요? (코드예시)
js의 얕은 복사와 깊은 복사의 간략한 소개와 구현 방법
위 내용은 Node.js는 _new 함수와 new 키워드를 구현하는 방법(코드 테스트 포함)을 캡슐화합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!