小编Sid*_*uru的帖子

Javascript:修改Prototype不会影响现有实例

我创建了2个原型实例,在原型中更改了一个函数,两个实例中都反映了变化(很棒).但是,当我通过删除函数修改原型时,该函数仍然存在于现有实例中.

function A() {
  this.name = "cool";
}

A.prototype = {
  howCool: function() {
    return this.name + "er";
  }
};

var a1 = new A(),
  a2 = new A();

a1.name = "hot";
//line1
console.log(a1.howCool());
//line2
console.log(a2.howCool());

A.prototype = {};

//line3
console.log(a1.howCool());

//line4
var a3 = new A();
console.log(a3.howCool());
Run Code Online (Sandbox Code Playgroud)

第1行和第2行按预期工作,在将原型设置为空后,第4行显示未定义的预期值.但是第3行仍然显示了函数定义.

javascript prototype ecmascript-6

7
推荐指数
1
解决办法
117
查看次数

标签 统计

ecmascript-6 ×1

javascript ×1

prototype ×1