JavaScript new对象的四个过程实例浅析


Posted in Javascript onJuly 31, 2018

本文实例讲述了JavaScript new对象的四个过程。分享给大家供大家参考,具体如下:

new对象:

function Person(name, age) {
  this.name = name;
  this.age = age;
}
var person = new Person("Alice", 23);

new一个对象的四个过程:

1、创建一个空对象

var obj = new Object();

2、让Person中的this指向obj,并执行Person的函数体

var result = Person.call(obj);

3、设置原型链,将obj的__proto__成员指向了Person函数对象的prototype成员对象

obj.__proto__ = Person.prototype;

4、判断Person的返回值类型,如果是值类型,返回obj。如果是引用类型,就返回这个引用类型的对象。

if (typeof(result) == "object")
  person = result;
else
  person = obj;

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
js循环改变div颜色具体方法
Jun 25 Javascript
javascript通过navigator.userAgent识别各种浏览器
Oct 25 Javascript
jQuery.holdReady()方法用法实例
Dec 27 Javascript
异步安全加载javascript文件的方法
Jul 21 Javascript
jfinal与bootstrap的登录跳转实战演习
Sep 22 Javascript
JS实现仿QQ效果的三级竖向菜单
Sep 25 Javascript
详解JavaScript逻辑And运算符
Dec 04 Javascript
Bootstrap Metronic完全响应式管理模板学习笔记
Jul 08 Javascript
AngularJS select加载数据选中默认值的方法
Feb 28 Javascript
element-ui table组件如何使用render属性的实现
Nov 04 Javascript
JS如何在不同平台实现多语言方式
Jul 16 Javascript
JS异步堆栈追踪之为什么await胜过Promise
Apr 28 Javascript
Vue 路由 过渡动效 数据获取方法
Jul 31 #Javascript
JS实现判断图片是否加载完成的方法分析
Jul 31 #Javascript
JavaScript+Canvas实现彩色图片转换成黑白图片的方法分析
Jul 31 #Javascript
vue实现word,pdf文件的导出功能
Jul 31 #Javascript
在create-react-app中使用css modules的示例代码
Jul 31 #Javascript
详解使用create-react-app添加css modules、sasss和antd
Jul 31 #Javascript
jQuery实现点击自身以外区域关闭弹出层功能完整示例【改进版】
Jul 31 #jQuery
You might like
Netflix将与CLAMP、乙一以及冲方丁等6名知名制作人合伙展开原创动画计划!
2020/03/06 日漫
DIY一个适配电脑声卡的动圈话筒放大器
2021/03/02 无线电
谈谈PHP语法(5)
2006/10/09 PHP
解析php中的fopen()函数用打开文件模式说明
2013/06/20 PHP
php+ajax实现无刷新数据分页的办法
2015/11/02 PHP
PHP使用token防止表单重复提交的方法
2016/04/07 PHP
php编译安装php-amq扩展简明教程
2016/06/25 PHP
用js实现上传图片前的预览(TX的面试题)
2007/08/14 Javascript
jquery操作select详解(取值,设置选中)
2014/02/07 Javascript
不同编码的页面表单数据乱码问题解决方法
2015/02/15 Javascript
easyui Droppable组件实现放置特效
2015/08/19 Javascript
Angular4 中内置指令的基本用法
2017/07/31 Javascript
详解用JS添加和删除class类名
2019/03/25 Javascript
说说如何使用Vuex进行状态管理(小结)
2019/04/14 Javascript
jQuery实现的鼠标拖动画矩形框示例【可兼容IE8】
2019/05/17 jQuery
Vue仿百度搜索功能
2020/12/28 Vue.js
[01:01:35]Optic vs paiN 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
Python3写入文件常用方法实例分析
2015/05/22 Python
用Python的Flask框架结合MySQL写一个内存监控程序
2015/11/07 Python
Python脚本处理空格的方法
2016/08/08 Python
Python3之文件读写操作的实例讲解
2018/01/23 Python
对Python协程之异步同步的区别详解
2019/02/19 Python
Python实现多进程的四种方式
2019/02/22 Python
Python3.5实现的三级菜单功能示例
2019/03/25 Python
Python利用神经网络解决非线性回归问题实例详解
2019/07/19 Python
python实现微信打飞机游戏
2020/03/24 Python
python中如何写类
2020/06/29 Python
Holiday Inn中国官网:IHG旗下假日酒店预订
2018/04/08 全球购物
请用用Java代码写一个堆栈
2012/01/26 面试题
2019史上最全Database工程师题库
2015/12/06 面试题
C#面试题问题集
2016/04/02 面试题
公司授权委托书
2014/04/04 职场文书
信用卡逾期证明示例
2014/09/13 职场文书
党的群众路线教育实践活动党员个人剖析材料
2014/10/08 职场文书
工伤事故处理协议书怎么写
2014/10/15 职场文书
运动员入场词
2015/07/18 职场文书