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 相关文章推荐
document.getElementById方法在Firefox与IE中的区别
May 18 Javascript
用jquery实现自定义风格的滑动条实现代码
Apr 26 Javascript
js函数返回多个返回值的示例代码
Nov 05 Javascript
浅析JavaScript中的隐式类型转换
Dec 05 Javascript
Jquery uploadify图片上传插件无法上传的解决方法
Dec 16 Javascript
Vue.js实现输入框绑定的实例代码
Aug 24 Javascript
AngularJs 延时器、计时器实例代码
Sep 16 Javascript
原生JS实现日历组件的示例代码
Sep 22 Javascript
在Vue项目中,防止页面被缩放和放大示例
Oct 28 Javascript
JS highcharts动态柱状图原理及实现
Oct 16 Javascript
vuex的数据渲染与修改浅析
Nov 26 Vue.js
JavaScript基于SVG的图片切换效果实例代码
Dec 15 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数据文件缓存类汇总
2014/12/05 PHP
百万级别知乎用户数据抓取与分析之PHP开发
2015/09/28 PHP
yii2缓存Caching基本用法示例
2016/07/18 PHP
PHP 500报错的快速解决方法
2016/12/14 PHP
Laravel利用gulp如何构建前端资源详解
2018/06/03 PHP
Yii框架实现对数据库的CURD操作示例
2019/09/03 PHP
改版了网上的一个js操作userdata
2007/04/27 Javascript
DOM 中的事件处理介绍
2012/01/18 Javascript
jQuery学习笔记之jQuery.fn.init()的参数分析
2014/06/09 Javascript
jQuery实现表格展开与折叠的方法
2015/05/04 Javascript
javascript检测两个数组是否相似
2015/05/19 Javascript
AngularJS 模块化详解及实例代码
2016/09/14 Javascript
jQuery web 组件 后台日历价格、库存设置的代码
2016/10/14 Javascript
jQuery选择器实例应用
2017/01/05 Javascript
Vue 中使用vue2-highcharts实现top功能的示例
2018/03/05 Javascript
create-react-app 修改为多入口编译的方法
2018/08/01 Javascript
微信小程序动态添加view组件的实例代码
2019/05/23 Javascript
微信小程序利用云函数获取手机号码
2019/12/17 Javascript
vue实现分页加载效果
2019/12/24 Javascript
分享JS表单验证源码(带错误提示及密码等级)
2020/01/05 Javascript
JS中的const命令你真懂它吗
2020/03/08 Javascript
解决新建一个vue项目过程中遇到的问题
2020/10/22 Javascript
在Python程序中实现分布式进程的教程
2015/04/28 Python
Python中字典的基本知识初步介绍
2015/05/21 Python
python开发中module模块用法实例分析
2015/11/12 Python
解决已经安装requests,却依然提示No module named requests问题
2018/05/18 Python
python 制作自定义包并安装到系统目录的方法
2018/10/27 Python
python采集微信公众号文章
2018/12/20 Python
Python中常用的内置方法
2019/01/28 Python
Python实现的读取文件内容并写入其他文件操作示例
2019/04/09 Python
如何对python的字典进行排序
2020/06/19 Python
Jupyter Notebook 远程访问配置详解
2021/01/11 Python
StubHub新西兰:购买和出售你的门票
2019/04/22 全球购物
Feelunique中文官网:欧洲最大化妆品零售电商
2020/07/10 全球购物
Python爬虫爬取全球疫情数据并存储到mysql数据库的步骤
2021/03/29 Python
使用Python开发冰球小游戏
2022/04/30 Python