这下面是我对整个 js 中对象的认识图 ,不知道队不对:
null;
function Object(){
this.prototype={
constructor:null,
};
this.__proto__=this.prototype;
};
function Function(){
this.prototype={
constructor:Object.prototype,
};
this.__proto__=this.prototype,
};
function Arry(){
this.prototype={
constructor:Function.prototype,
};
this.__proto__=this.prototype;
};
在此我还想请教下 js中 new的内部作用原理
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
简单来说,new操作符执行两个动作:1.实例化一个object类。2.以这个object为上下文执行new后面的函数。就这么简单。
第一个问题,看来题主主要想问的是构造函数,实例和原型三者的关系,这一方面在高程这本书的第六章给了非常清晰的解答,我简单说一下。构造函数中的prototype指向原型,原型中的constructor指向构造函数,实例中的__proto__指向原型,可以看出,实例和构造函数是没什么关系的。
第二个问题,我的理解是,如果没有new,那么函数在没有明确规定返回类型的时候返回undefined,但是如果用new,那么函数会为此分配内存并返回一个该种object的实例。