一则关于javascript prototype 错误用例
今天闲来无聊,回顾知识点,记忆告诉自己,prototype 是能动态给js的对象添加属性和函数的。
写了一个小例子。居然没调通。我老郁闷啦。
eg:
function?MyObject(t)
???????? ?{
???????? ?????this.name?=?t;
???????? ?}
???????? ?
???????? ??MyObject.prototype.writeName?=?function()
???????? ?{
????????????????return?this.name;
???????? ?}
???????? ?
???????? ?var?myobj1?=?new?MyObject("b");
????????
???????? ?alert(myobj1.writeName());
???????? ?
???????? ?MyObject.prototype.name?=?"c";
???????? ?
???????? ?alert(myobj1.writeName());
心想应该分别输出 “b” 和 “c”
结果两次输出都是“b”。仔细看着这简单的脚本似乎没有任何错误,看久了我想起一句话,prototype 是动态追加。 于是我在想,动态追加,是否应该该成这样呢。
function?MyObject(t)
???????? ?{
???????? ?????this.size?=?t;
???????? ?}
???????? ?
???????? ??MyObject.prototype.writeName?=?function()
???????? ?{
????????????????return?this.name;
???????? ?}
????????
???????? ?MyObject.prototype.name?=?"b";
????????
???????? ?var?myobj1?=?new?MyObject("b");
????????
???????? ?alert(myobj1.writeName());
???????? ?
???????? ?MyObject.prototype.name?=
免责声明: 本文仅代表作者个人观点,与爱易网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。