JavaScript 的 new会发生什么

  1. 创建空对象;

    var obj = {};

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

    obj.proto = ClassA.prototype;

    扩展了新对象的原型链。

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

    ClassA.call(obj);  //{}.构造函数();

  4. 返回this指针。当存在显示的返回时,返回return后面的内容。新建的空对象作废。

javascript 复制代码
//创建了一个空对象obj;
var obj  = {};

//将这个空对象的__proto__成员指向了F函数对象prototype成员对象
obj.__proto__ = F.prototype;

//将F函数对象的this指针替换成obj,然后再调用F函数
F.call(obj);
javascript 复制代码
function test() {
	this.name = 'test';
}
test.prototype = {
	a: {},
	b: {}
};

var c = new test();
相关推荐
灰子学技术8 小时前
go response.Body.close()导致连接异常处理
开发语言·后端·golang
二十雨辰9 小时前
[python]-AI大模型
开发语言·人工智能·python
Yvonne爱编码9 小时前
JAVA数据结构 DAY6-栈和队列
java·开发语言·数据结构·python
Re.不晚9 小时前
JAVA进阶之路——无奖问答挑战1
java·开发语言
Daniel李华9 小时前
echarts使用案例
android·javascript·echarts
北原_春希9 小时前
如何在Vue3项目中引入并使用Echarts图表
前端·javascript·echarts
JY-HPS9 小时前
echarts天气折线图
javascript·vue.js·echarts
你这个代码我看不懂9 小时前
@ConditionalOnProperty不直接使用松绑定规则
java·开发语言
尽意啊9 小时前
echarts树图动态添加子节点
前端·javascript·echarts
吃面必吃蒜9 小时前
echarts 极坐标柱状图 如何定义柱子颜色
前端·javascript·echarts