찾다
웹 프론트엔드JS 튜토리얼JavaScript_javascript 스킬에서 함수가 new인지 ()인지 판단하는 차이점에 대한 설명

방법 1

코드 복사 코드는 다음과 같습니다.

function Person(n,a) {
this.name = n;
this.age = a;
if(이 인스턴스of Person){
alert('new call')
}else{
alert ('함수 호출');
}
}
var p = new Person('jack',30) // --> 새로운 호출
Person(); > 함수 호출

방법 2
코드 복사 코드는 다음과 같습니다.

function Person(n,a){
this.name = n;
this.age = a
if(this 인스턴스ofargs.callee){
alert(' 새 호출');
}else{
alert('함수 호출');
}
}
var p = new Person('jack',30); > 새 호출
Person(); // --> 함수 호출

방법 3
코드 복사 코드는 다음과 같습니다. function Person(n,a){
this.name = n
this.age = a; if(this.constructor === 인수 .callee){
alert('새 호출')
}else{
alert('함수 호출')
}
}
var p = new Person(' jack',30); // --> 새로운 호출
Person(); // --> 함수 호출


그런데 함수/클래스를 다음과 같이 사용할 경우 자신의 인스턴스 객체의 메소드를 호출할 때 문제가 발생합니다



코드를 복사하세요
코드는 다음과 같습니다: function Person(n,a){ this.name = n
this.age = a
if(this.constructor == =args.callee){
alert('new call' );
}else{
alert('function call')
}
}
var p = new Person ('jack',30); // 새 객체 먼저
p.fn = Person; // 자체 객체의 fn 속성에 함수/클래스 할당 p
p.fn(); 이 문장을 호출하면 "새 호출입니다."라는 메시지가 나오는데 이는 분명히 잘못된 것입니다


더 좋은 방법이 있을까요?
성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
java中的new关键字怎么使用java中的new关键字怎么使用May 03, 2023 pm 10:16 PM

1.概念在Java语言里,“new”表达式是负责创建实例的,其中会调用构造器去对实例做初始化;构造器自身的返回值类型是void,并不是“构造器返回了新创建的对象的引用”,而是new表达式的值是新创建的对象的引用。2.用途新建类的对象3.工作机制为对象成员分配内存空间,并指定默认值对成员变量进行显式初始化执行构造方法计算并返回引用值4.实例new操作往往意味着内存中的开辟新的内存空间,这个内存空间分配在内存中的堆区,受到jvm控制,自动进行内存管理。这里我们就是用String这个类来举例说明。pu

go语言中make和new的区别是什么go语言中make和new的区别是什么Jan 09, 2023 am 11:44 AM

区别:1、make只能用来分配及初始化类型为slice、map、chan的数据;而new可以分配任意类型的数据。2、new分配返回的是指针,即类型“*Type”;而make返回引用,即Type。3、new分配的空间会被清零;make分配空间后,会进行初始化。

js中new操作符工作原理是什么js中new操作符工作原理是什么Feb 19, 2024 am 11:17 AM

js中new操作符工作原理是什么,需要具体代码示例js中的new操作符是用来创建对象的关键字。它的作用是根据指定的构造函数创建一个新的实例对象,并返回该对象的引用。在使用new操作符时,实际上进行了以下几个步骤:创建一个新的空对象;将该空对象的原型指向构造函数的原型对象;将构造函数的作用域赋给新对象(因此this指向了新对象);执行构造函数中的代码,并给新对

New Fujifilm fixed-lens GFX camera to debut new medium format sensor, could kick off all-new seriesNew Fujifilm fixed-lens GFX camera to debut new medium format sensor, could kick off all-new seriesSep 27, 2024 am 06:03 AM

Fujifilm has seen a lot of success in recent years, largely due to its film simulations and the popularity of its compact rangefinger-style cameras on social media. However, it doesn't seem to be resting on its laurels, according to Fujirumors. The u

如何使用Java中的clone()方法替代new关键字?如何使用Java中的clone()方法替代new关键字?Apr 22, 2023 pm 07:55 PM

使用clone()代替new在Java中新建对象实例最常用的方法是使用new关键字。JDK对new的支持非常好,使用new关键字创建轻量级对象时,速度非常快。但是,对于重量级对象,由于对象在构造函数中可能会进行一些复杂且耗时的操作,因此,构造函数的执行时间可能会比较长。导致系统短期内无法获得大量的实例。为了解决这个问题,可以使用Object.clone()方法。Object.clone()方法可以绕过构造函数,快速复制一个对象实例。但是,在默认情况下,clone()方法生成的实例只是原对象的浅拷

java中如何使用new实例化java中如何使用new实例化May 16, 2023 pm 07:04 PM

1.概念就是“创建一个Java对象”-----分配内存并返回指向该内存的引用。2.注意事项(1)Java关键字new是一个运算符。与+、-、*、/等运算符具有相同或类似的优先级。(2)创建一个Java对象需要三步:声明引用变量、实例化、初始化对象实例。(3)实列化之前会默认调用父类的无参构造,也就是要创建父类的对象3.两种实例化方法(1)对象名=new类名(参数1,参数2...参数n);对象名.方法();(2)new类名(参数1,参数2...参数n).方法;4.实例用一个简单的代码来说明使对象实

常用的excel判断函数分享常用的excel判断函数分享Mar 19, 2024 pm 09:30 PM

Excel表格存在于各行各业,无论你是职场工作人员还是老师,甚至是国家机关工作人员,都要频繁用到Excel工具,掌握好Excel操作技巧能够让自己的工作增光添彩,必要时能助力自己升职加薪。本文小编主要为大家分享常用的Excel判断函数。一、常用的excel判断函数1、IF函数:根据条件判断返回不同的值;语法=IF(条件判断,结果为真返回值,结果为假返回值)2、OR函数:对多个逻辑条件进行判断;语法=OR(条件1=标准1,条件2=标准2,......条件N=标准N)3、AND函数:多条件同时成立;

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

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

뜨거운 도구

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

VSCode Windows 64비트 다운로드

VSCode Windows 64비트 다운로드

Microsoft에서 출시한 강력한 무료 IDE 편집기

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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