为了账号安全,请及时绑定邮箱和手机立即绑定

在原型链和class中定义getter&setter有什么不同?

在原型链和class中定义getter&setter有什么不同?

呼啦一阵风 2018-08-30 10:05:33
有这样一小段程序,描述了两个类,每个类都有一对 getter&setter 属性:Test1 是在 原型链 上定义的;Test2 是用 ES6 中定义的;// Test1function Test1(val) {   alert("1");  this.value = val; } Test1.prototype = {   get value() {     alert("2");    return this._value;   },   set value(val) {     alert("3");    this._value = val;   } };var f1=new Test1("zj"); f1.value="sdf";console.log(f1);运行结果是:弹出: 1 3 3 2;输出:[object Object] {  _value: "sdf",  value: "sdf"}// Test2class Test2{  constructor(val){     alert("1");    this.value = val;   }   get value(){     alert("2");    return this._value;   }   set value(v){     alert("3");    this._value=v;   } }var f2=new Test2("zj"); f2.value="sdf";console.log(f2);运行结果是:弹出: 1 3 3;输出:[object Object] {  _value: "sdf"}可以看到这两种方式定义的getter&setter结果是不一样的,请问是为什么呢?
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 641 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信