首先先定义了People构造函数,通过new People()得到实例,会包含一个实例对象type和一个原型属性showType。 另外定义一个Woman构造函数,然后情况发生变化,本来构造函数Woman的prototype会执行Woman的原型对象,但是我们这里稍有改变,将Woman构造函数的prototype指向了People实例对象覆盖了Woman的原型对象。
原型:构造函数在创建的过程中,系统自动创建出来与构造函数相关联的一个空的对象。可以由构造函数.prototype来访问到。 举例:在实例化对象p的过程中,系统就自动创建出了构造函数的原型,即Person.prototype. 注意:每个对象的__proto__属性指向自身构造函数的prototype; constructor属性是原型对象的属性,指向这个原型对象所...
1.创建一个空对象,作为将要返回的对象实例 2.将这个空的对象原型对象,指向了构造函数的prototype属性对象 3.将这个实例对象的值赋值给函数内部的this关键字 4.执行构造函数内的代码。 5.如果该函数没有返回对象,则返回this。 function Person(name) {
可以看到,普通调用会返回return后面的值,而new调用返回空对象{}。 2.3 无this有return,但是return后面是一个对象(包括函数)。 代码语言:javascript 代码运行次数:0 运行 AI代码解释 // 返回对象functionA(){return{m:1};}//返回函数functionB(){returnfunction(){return123;}}vara1=A();vara2=newA();consol...
// 将空对象的原型地址 `_proto_` 指向构造函数的原型对象 newObj.__proto__ = fn.prototype; // this 指向新对象 fn.apply(newObj, args); // 返回这个新对象 return newObj; } 实例对象 前面介绍完了new操作符以及构造函数,接下来就是他们的生产物,实例对象 ...
关系总结:每一个构造函数都有一个属性,叫prototype,指向原型对象。 每个实例对象都有个非标准的--proto--指向原型对象 每个原型对象有个constructor指回构造函数 在继承的时候,经常会使用 constructor指回去,prototype.constructor仅仅可以用于识别对象是由哪个构造函数初始化的,仅此而已 ...
对象原型( __proto__)和构造函数原型对象(prototype)里面都有一个属性 constructor 属性 ,constructor 我们称为构造函数,因为`它指回构造函数本身`。 `constructor 主要用于记录该对象引用于哪个构造函数,它可以让原型对象重新指向原来的构造函数`。 一般情况下,对象的方法都在构造函数的原型对象中设置。如果有多个对象...
function Person(name,age){ =name this.age=age } Person.prototype.sayHi=function(){//原型是公共方法解决构造函数new对象公共属性和方法的内存浪费 console.log(+' say hi!!') } const p1=new Person('aa',12) const p2=new Person('bb',14) ...
就是说,在通过 new 关键字来创建一个对象的时候,会查看 Dog.prototype 是不是一个对象,如果不是的话,就设置为 Object.prototype 如果你想让 dog 没有原型链,可以 var dog = Object.create(null) Object.create的执行步骤可以看这里: http://es5.github.io/#x15.2.3.5 Set the [[Prototype]] internal pro...
prototype指向原型对象 constructor又指向Person对象 2. 同样的,在创建的实例对象中,也会指向原型对象,在这里 person1 为实例对象 console.dir(person1); _proto_指向原型对象 constructor又指向Person对象 构造函数、原型对象和实例对象的关系图: 三、在原型对象上定义属性或方法 ...