js中prototype继承小小小问题
高洛峰
高洛峰 2016-10-29 09:18:46
0
1
434
function pp(json){
    this.x = (json.x!=null) ? json.x : '未知';
    this.xx = (json.xx!=null) ? json.xx : this.x/2;
}
function zz(x){
    this.x= x;
}
zz.prototype = new pp({});

-------------------------------------------然后

var zz= new zz(50);
alert(zz.x+'---'+zz.xx);

alert显示的数据是50和0,怎样才能简便的实时更新继承pp的xx的值?我想要的是25

求大神解惑


高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全員に返信(1)
三叔

。。不知道你是什么缘由想要更新 pp 的 x,xx ,他们虽然在 pp 函数中,但是通过 zz.prototype = new pp({}); 已经传递 zz 了,不信看图:

1.png

pp 中还是 啥都没有:

1.png

而通过 var z= new zz(50);(我手动帮你改成 z),这时候的 z:

1.png

所有当你访问 (z.x+'---'+z.xx) 的时候,返回 50 和 NaN,如果需要得到 xx = 25,有两种方法,第一种,改变 zz 函数:

function zz(x){
    this.x= x;
    this.xx = this.x/2;
}

这个时候 的 z :

1.png

第二种,用函数来实现,

function pp(json){
    this.x = (json.x!=null) ? json.x : '未知';
    this.xx = function(){
      return this.x/2;
    }
}

调用:console.log(z.x+'---'+z.xx());

不知道你的动机是什么。


いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!