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 相关文章推荐
js 获取class的元素的方法 以及创建方法getElementsByClassName
Mar 11 Javascript
VS2008中使用JavaScript调用WebServices
Dec 18 Javascript
javascript中call,apply,bind的用法对比分析
Feb 12 Javascript
jQuery实现的感应鼠标悬停图片色彩渐显效果
Mar 03 Javascript
js判断radiobuttonlist的选中值显示/隐藏其它模块的实现方法
Aug 25 Javascript
使用jQuery的ajax方法向服务器发出get和post请求的方法
Jan 13 Javascript
JS实现移动端判断上拉和下滑功能
Aug 07 Javascript
vue 动态修改a标签的样式的方法
Jan 18 Javascript
vue todo-list组件发布到npm上的方法
Apr 04 Javascript
jQuery实现鼠标移入移出事件切换功能示例
Sep 06 jQuery
ES6中Set和Map数据结构,Map与其它数据结构互相转换操作实例详解
Feb 28 Javascript
js中async函数结合promise的小案例浅析
Apr 14 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
PHP异步调用socket实现代码
2012/01/12 PHP
PHP的fsockopen、pfsockopen函数被主机商禁用的解决办法
2014/07/08 PHP
php.ini save_handler 修改不生效的解决办法
2014/07/22 PHP
PHP从零开始打造自己的MVC框架之入口文件实现方法详解
2019/06/03 PHP
完美解决JS中汉字显示乱码问题(已解决)
2006/12/27 Javascript
一些实用的jQuery代码片段收集
2011/07/12 Javascript
火狐textarea输入法的bug的触发及解决
2013/07/24 Javascript
Javascript中call的两种用法实例
2013/12/13 Javascript
Jquery对数组的操作技巧整理
2014/03/25 Javascript
javascript使用正则控制input输入框允许输入的值方法大全
2014/06/19 Javascript
node.js中的fs.mkdir方法使用说明
2014/12/17 Javascript
JavaScript判断undefined类型的正确方法
2015/06/30 Javascript
Angular表单验证实例详解
2016/10/20 Javascript
vue.js移动端tab组件的封装实践实例
2017/06/30 Javascript
shiro授权的实现原理
2017/09/21 Javascript
vue webuploader 文件上传组件开发
2017/09/23 Javascript
jquery学习笔记之无new构建详解
2017/12/07 jQuery
vue中路由参数传递可能会遇到的坑
2017/12/07 Javascript
webpack 打包压缩js和css的方法示例
2018/03/20 Javascript
详解使用jest对vue项目进行单元测试
2018/09/07 Javascript
vue iview的菜单组件Mune 点击不高亮的解决方案
2019/11/01 Javascript
vue 开发企业微信整合案例分析
2019/12/02 Javascript
jquery html添加元素/删除元素操作实例详解
2020/05/20 jQuery
微信小程序学习总结(四)事件与冒泡实例分析
2020/06/04 Javascript
[02:52]2014DOTA2西雅图国际邀请赛 CIS战队巡礼
2014/07/07 DOTA
[44:30]完美世界DOTA2联赛PWL S2 GXR vs Magma 第一场 11.25
2020/11/26 DOTA
python使用multiprocessing模块实现带回调函数的异步调用方法
2015/04/18 Python
在Python的Flask框架下收发电子邮件的教程
2015/04/21 Python
python执行子进程实现进程间通信的方法
2015/06/02 Python
Python lambda函数基本用法实例分析
2018/03/16 Python
Python基于Tkinter模块实现的弹球小游戏
2018/12/27 Python
PyQt5 实现给窗口设置背景图片的方法
2019/06/13 Python
大专毕业生简历的自我评价
2013/10/20 职场文书
四年的大学生生活自我评价
2013/12/09 职场文书
群众路线教育实践活动方案
2014/10/31 职场文书
英语投诉信范文
2015/07/03 职场文书