javascript 构造函数中的属性与原型上属性优先级的比较

Posted Mr Zhu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript 构造函数中的属性与原型上属性优先级的比较相关的知识,希望对你有一定的参考价值。

 

备注: 下面这个问题是我前天看书上发现的。

按照我以前的理解, a.rename()这个方法传什么值,结果都会弹出 小a,但我看书上的demo 弹出的是大A.... 

我的困惑是:  js的构造函数中的属性与方法, 不是比原型对象上的属性与方法优先级要高吗?为什么会弹出的是大A?

PS: 小弟很想有人能用通俗易通的语言, 简单的描述下,为什么会弹出的是 A, 而不是小 a。在此谢谢了 

function F(name) {
  this.name = name;
}

var a = new F("a");

F.prototype.rename = function(name){
  this.name = name;
};

a.rename("A");
alert(a.name); // 结果竟是 A 而不是小 a

以上是关于javascript 构造函数中的属性与原型上属性优先级的比较的主要内容,如果未能解决你的问题,请参考以下文章

关于JavaScript的原型继承与原型链

JS中的原型对象与构造器

JavaScript原型

JavaScript之面向对象学习六原型模式创建对象的问题,组合使用构造函数模式和原型模式创建对象

JavaScript创建对象的默认方式:组合使用构造函数模式和原型模式

原型与原型链(javascript)