js中new一个对象的过程


Posted in Javascript onFebruary 20, 2017

使用new关键字调用函数(new ClassA(…))的具体步骤:

1. 创建空对象{}

2. 使用新对象,调用函数,函数中的this被指向新实例对象:

         {}.构造函数();         

3. 设置新对象的constructor属性为构造函数的名称,设置新对象的__proto__属性指向构造函数的prototype对象

4. 将初始化完毕的新对象地址,保存到等号左边的变量中

注意:若构造函数中没有返回值或返回值是基本类型(Number、String、Boolean)的值,则返回新实例对象;若返回值是引用类型的值,则实际返回值为这个引用类型。

var foo = "bar";
function test () {
 this.foo = "foo";
}
new test();  


//test中的this指新对象,并未改变全局的foo属性
console.log(this.foo);  // "bar"
console.log(new testThis().foo); // "foo";new和属性访问.运算符优先级相通,从左往右执行

以上皆为个人理解,如有错误之处,欢迎留言指正。

希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
页面中body onload 和 window.onload 冲突的问题的解决
Jul 01 Javascript
js控制的回到页面顶端goTop的代码实现
Mar 20 Javascript
JavaScript 事件绑定及深入
Apr 13 Javascript
js调用百度地图及调用百度地图的搜索功能
Sep 07 Javascript
javascript中eval解析JSON字符串
Feb 27 Javascript
js如何获取网页所有图片
May 12 Javascript
vue-awesome-swiper滑块插件使用方法详解
Nov 27 Javascript
JS+HTML5实现获取手机验证码倒计时按钮
Aug 08 Javascript
使用ECharts实现状态区间图
Oct 25 Javascript
微信头像地址失效踩坑记附带解决方案
Sep 23 Javascript
node.js基础知识汇总
Aug 25 Javascript
Javascript 模拟mvc实现点餐程序案例详解
Dec 24 Javascript
利用node.js搭建简单web服务器的方法教程
Feb 20 #Javascript
jQuery实现鼠标跟随效果
Feb 20 #Javascript
BootStrap fileinput.js文件上传组件实例代码
Feb 20 #Javascript
Bootstrap jquery.twbsPagination.js动态页码分页实例代码
Feb 20 #Javascript
分享一道关于闭包、bind和this的面试题
Feb 20 #Javascript
原生JS实现跑马灯效果
Feb 20 #Javascript
js 实现省市区三级联动菜单效果
Feb 20 #Javascript
You might like
在CentOS上搭建LAMP+vsftpd环境的简单指南
2015/08/01 PHP
PHP 微信扫码支付源代码(推荐)
2016/11/03 PHP
php技巧小结【推荐】
2017/01/19 PHP
Laravel框架自定义分页样式操作示例
2020/01/26 PHP
JavaScript的strict模式与with关键字介绍
2014/02/08 Javascript
jQuery中prop()方法用法实例
2015/01/05 Javascript
在javascript中创建对象的各种模式解析
2016/05/16 Javascript
移动端 一个简单易懂的弹出框
2016/07/06 Javascript
JS+html5 canvas实现的简单绘制折线图效果示例
2017/03/13 Javascript
TypeScript入门-基本数据类型
2017/03/28 Javascript
node通过express搭建自己的服务器
2017/09/30 Javascript
浅谈Vue.use的使用
2018/08/29 Javascript
Vue编写可显示周和月模式的日历 Vue自定义日历内容的显示
2019/06/26 Javascript
vue中实现高德定位功能
2019/12/03 Javascript
解决angular 使用原生拖拽页面卡顿及表单控件输入延迟问题
2020/04/21 Javascript
[10:07]2014DOTA2国际邀请赛 实拍选手现场观战DK对阵Titan
2014/07/12 DOTA
Python中处理字符串之endswith()方法的使用简介
2015/05/18 Python
深入解析Python中的lambda表达式的用法
2015/08/28 Python
Python中__init__.py文件的作用详解
2016/09/18 Python
Python基础中所出现的异常报错总结
2016/11/19 Python
Python定时器实例代码
2017/11/01 Python
pandas使用apply多列生成一列数据的实例
2018/11/28 Python
Python面向对象程序设计类的多态用法详解
2019/04/12 Python
python Django中models进行模糊查询的示例
2019/07/18 Python
Django的Modelforms用法简介
2019/07/27 Python
Python多继承以及MRO顺序的使用
2019/11/11 Python
使用python 将图片复制到系统剪贴中
2019/12/13 Python
德国玩具商店:Planet Happy DE
2021/01/16 全球购物
介绍一下linux文件系统分配策略
2012/11/17 面试题
Linux面试题LINUX系统类
2015/11/25 面试题
总经理职责范文
2013/11/08 职场文书
大学生优秀班干部事迹材料
2014/05/26 职场文书
幼儿园教研工作总结2015
2015/05/12 职场文书
永远是春天观后感
2015/06/12 职场文书
详解JVM系列之内存模型
2021/06/10 Javascript
中国十大神话动漫电影排行榜 哪吒登顶 白蛇缘起排第七
2022/03/21 国漫