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 相关文章推荐
用正则获取指定路径文件的名称
Feb 27 Javascript
Javascript 浮点运算的问题分析与解决方法
Aug 27 Javascript
js自动生成的元素与页面原有元素发生堆叠的解决方法
Oct 24 Javascript
js 将json字符串转换为json对象的方法解析
Nov 13 Javascript
在线一元二次方程计算器实例(方程计算器在线计算)
Dec 22 Javascript
JS中FRAME的操作问题实例分析
Oct 21 Javascript
js超时调用setTimeout和间歇调用setInterval实例分析
Jan 28 Javascript
Jquery实现仿腾讯娱乐频道焦点图(幻灯片)特效
Mar 06 Javascript
Javascript生成带参数的二维码示例
Oct 10 Javascript
微信小程序登录换取token的教程
May 31 Javascript
layui table设置某一行的字体颜色方法
Sep 05 Javascript
VUE.CLI4.0配置多页面入口的实现
Nov 25 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中通过curl模拟登陆discuz论坛的实现代码
2012/02/16 PHP
str_replace只替换一次字符串的方法
2013/04/09 PHP
php常用ODBC函数集(详细)
2013/06/24 PHP
php防止网站被刷新的方法汇总
2014/12/01 PHP
yii用户注册表单验证实例
2015/12/26 PHP
Alliance vs Liquid BO3 第一场2.13
2021/03/10 DOTA
JS IE和FF兼容性问题汇总
2009/02/09 Javascript
jValidate 基于jQuery的表单验证插件
2009/12/12 Javascript
jQuery 学习第七课 扩展jQuery的功能 插件开发
2010/05/17 Javascript
基于jQuery的弹出警告对话框美化插件(警告,确认和提示)
2010/06/10 Javascript
70+漂亮且极具亲和力的导航菜单设计国外网站推荐
2011/09/20 Javascript
js加载之使用DOM方法动态加载Javascript文件
2013/11/08 Javascript
jquery下拉select控件操作方法分享(jquery操作select)
2014/03/25 Javascript
深入分析escape()、encodeURI()、encodeURIComponent()的区别及示例
2014/08/04 Javascript
Spring mvc 接收json对象
2015/12/10 Javascript
AngularJS中实现用户访问的身份认证和表单验证功能
2016/04/21 Javascript
关于Ajax的原理以及代码封装详解
2017/09/08 Javascript
浅谈Vue-cli单文件组件引入less,sass,css样式的不同方法
2018/03/13 Javascript
浅谈vuepress 踩坑记
2018/04/18 Javascript
Vue隐藏显示、只读实例代码
2018/07/18 Javascript
Vue 实现CLI 3.0 + momentjs + lodash打包时优化
2019/11/13 Javascript
Vue两种组件类型:递归组件和动态组件的用法
2020/08/06 Javascript
Vue基于localStorage存储信息代码实例
2020/11/16 Javascript
Antd-vue Table组件添加Click事件,实现点击某行数据教程
2020/11/17 Javascript
[45:59]EG vs OG 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
Python常用模块用法分析
2014/09/08 Python
Python合并字符串的3种方法
2015/05/21 Python
Python实现简易端口扫描器代码实例
2017/03/15 Python
Python实现的直接插入排序算法示例
2018/04/29 Python
详解python做UI界面的方法
2019/02/27 Python
python解压TAR文件至指定文件夹的实例
2019/06/10 Python
将Pytorch模型从CPU转换成GPU的实现方法
2019/08/19 Python
园林系毕业生求职信
2014/06/23 职场文书
2014年房产经纪人工作总结
2014/12/08 职场文书
css3 filter属性的使用简介
2021/03/31 HTML / CSS
Mybatis-plus配置分页插件返回统一结果集
2022/06/21 Java/Android