首页 > 其他分享 >js的new做了什么

js的new做了什么

时间:2023-06-16 19:34:06浏览次数:36  
标签:obj log Person 什么 console js person new

new对象底层发生了什么

function Person(phone, age) {
  this.age = age;
  this.phone = phone;
  this.showone = function () {};
}
Person.prototype.docall = function () {
  console.log("电话:", this.phone);
};

let person = new Person("12344", 23);
console.log("person", person); //3个属性方法,原型上1个方法,constructor指向Person对象
console.log("person的类型是:", typeof person);
//类型是object,并不是person。因为typeof只认识基础类型
//if (typeof person === "")  //这里的引号会提示有哪些基础类型

new 一个实例对象的底层实际就3步
1.创建一个 Object 对象

var obj = {}; //底层实际是new Object();
console.log("第1步:", obj); //此时:constructor指向Object对象(祖先)

2.让新创建的对象的 proto 变量指向 Person 原型对象空间

obj.__proto__ = Person.prototype;
console.log("第2步:", obj); //到这里,第一步打印和现在的打印都变成:原型上1个方法,constructor指向Person对象

3.借用Person构造函数中的为 obj 对象变量增加 age 属性和 phone 属性

Person.apply(obj, ["12344", 23]); //apply借用
console.log("第3步:", obj); //可以看到和new出来的对象一模一样,3个属性方法,原型上1个方法,construc

标签:obj,log,Person,什么,console,js,person,new
From: https://www.cnblogs.com/yolocatcat/p/17486365.html

相关文章

  • 医疗虚拟仿真和虚拟现实有什么区别?哪个更好?
    随着我们在仿真教育中越来越多地使用新技术,区分虚拟模式的类型很重要。虚拟仿真是一个统称,用来概括术语来描述各种基于仿真的体验,从基于屏幕的平台到沉浸式虚拟现实。然而,各虚拟平台在保真度、沉浸感和临场感的水平上有很大差异。医疗教育中存在许多虚拟解决方案的空间,对于护理虚......
  • 关于js单线程的问题
    为什么说js是单线程?为了搞清楚这个问题,我们需要先了解这几个问题:什么是线程?什么是进程?他们之间的关系?什么是任务队列(EventQueue),任务分类(宏任务、微任务)?什么是事件循环?为什么说js是单线程?为什么js要是单线程?接下来我们一起来看一下:什么是线程?什么是进程?他......
  • 螺杆支撑座到底是做什么用的?
    在制造业中,人们最常接触的就是直线导轨和滚珠螺杆,往往会会忽略了体积小的螺杆支撑座,事实上,螺杆支撑座是搭配滚珠螺杆一起使用的,两者是相辅相成的。螺杆支撑座的应用功能非常重要,是连接螺杆和电机之间的重要组成,目前来说,使用非常广泛,像机械手、自动化设备、减速机、车床、磨床、钻床......
  • OPPO什么时候关停自研芯片公司哲库?
    公元2023年5月12日,OPPO关停了自研芯片公司哲库。这也是汶川大地震的日子,而OPPO创始人是四川人,真是冥冥之中自有天意。OPPO公司在一份声明中表示,出于商业考量,他们决定即时起关停哲库(ZEKU)业务,终止自研芯片的研发。OPPO表示,这是一个艰难的决定,但是面对全球经济和手机市场的挑战,他们......
  • centos8使用Yum安装nodejs步骤方法、nodejs升级切换版本的方法
    先确认系统是否已经安装了epel-release包(EPEL是企业版Linux的额外软件包,是Fedora小组维护的一个软件仓库项目,为RHEL/CentOS提供他们默认不提供的软件包。):Bash#yuminfoepel-release如果有输出有关epel-release的已安装信息,则说明已经安装,如果提示没有安装或可安装,则安装......
  • rabbit MQ —— ha-sync-mode. message 同步/ 丢失 in new pods
    经典队列镜像—兔子MQ(rabbitmq.com) why?message信息同步=》queue一段时间不可用(可用性降低) ConfiguringSynchronisationLet'sstartwiththemostimportantaspectofqueuesynchronisation: whileaqueueisbeingsynchronised,allotherqueueoperati......
  • tween.js简单案例
    ‘init(); animate(); functioninit(){ varoutput=document.createElement('div'); output.style.cssText='position:absolute;left:50px;top:300px;font-size:100px'; document.body.appendChild(output); v......
  • jquery根据json自动生成表格
    <!DOCTYPEhtml><html><head><metacharset="utf-8"><title>导入文件</title><linkrel="stylesheet"href="/js/bootstrap.min.css"><scriptsrc="/js/jquery.min.js&q......
  • java中xml和json转换
    packagecom.lbdz.bsf.util;importnet.sf.json.JSONObject;importnet.sf.json.JSONSerializer;importnet.sf.json.xml.XMLSerializer;/***xml和json转换*/publicclassXMLUtils{/***xml转化为字符串*@paramxml*@returnstr......
  • 什么是工单系统?工单系统在现代企业管理中的重要性
    随着信息技术的不断发展,现代企业管理工作已经离不开各种数字化工具的支撑。其中,工单系统作为一项重要的任务分配和协作工具,已经成为了不可或缺的一部分。工单系统可以根据不同的需求针对性地发布工单,进行针对的工作处理,从而实现任务分配和工作流程的监控,提高整体的工作效率。在现......