如何防止在JavaScript中执行继承属性的getter setter方法

维奈K

方案1:

//create a parent object
var parent = {}

// define a property prop1 on parent
parent.prop1 = 'value1'

parent.prop1 // will print 'value1'

// create a child object with parent as the prototype
var child = Object.create(parent)

child.prop1 // will print "value1"

// create prop1 on child 
child.prop1 = 'value updated'

child.prop1 // will print 'value updated'

parent.prop1 // will print "value1"

在这里prop1onchild将遮蔽(或覆盖)prop1onparent

方案2:

// define parent
var parent = {}

//define setter/getters for prop1
Object.defineProperty(parent, 'prop1', 
    {
        get: function () {
            console.log('inside getter of prop1'); 
            return this._prop1;
        },
        set: function (val) {
            console.log('inside setter of prop1');
            this._prop1 = val;
        }
    });

// define prop1 on parent
parent.prop1 = 'value1' // prints: inside setter of prop1

//access prop1
parent.prop1 // prints inside getter of prop1 and "value1"

// create a new object with parent as the prototype
var child = Object.create(parent)

// access prop1
child.prop1 // inside getter of prop1 "value1"

// update prop1 on child
child.prop1 = 'updated value'// inside setter of prop1

在最后一步,就像在scenario1,我想prop1child覆盖prop1定义上parent

如何实现呢?

维奈K

正如@dandavis所建议的那样,在子级上重新定义该属性将覆盖父级的属性。

Object.defineProperty(child, "prop1", {value: 'updated value'});

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Getter 和 Setter 方法

来自分类Dev

在Javascript的继承类中声明getter / setter

来自分类Dev

什么是getter和setter方法?

来自分类Dev

Java setter和getter方法

来自分类Dev

如何在 ES6 javascript 类中的泛型方法中获取所有 getter setter 属性的列表或数组?

来自分类Dev

Java反射-如何调用getter / setter方法?

来自分类Dev

如何自动生成getter和setter方法

来自分类Dev

如何声明用户定义的setter,getter方法?

来自分类Dev

javascript setter、getter 方法中缺少“this”关键字

来自分类Dev

继承Java obj的所有getter / setter方法

来自分类Dev

如何防止我的 setter 方法中的参数被更改?

来自分类Dev

如何为多维数组创建getter方法和setter方法?

来自分类Dev

与Mockito的接口的模拟getter / setter方法

来自分类Dev

Laravel 4:Getter和Setter方法

来自分类Dev

在AngularJS Factory中使用Getter / Setter方法

来自分类Dev

rspec测试getter和setter方法

来自分类Dev

Java getter / setter字段方法的缩写形式

来自分类Dev

getter / setter的Object.assign替代方法

来自分类Dev

传递getter / setter作为方法参考

来自分类Dev

如何在gtest中测试setter方法?

来自分类Dev

如何在gtest中测试setter方法?

来自分类Dev

setter方法的执行时间

来自分类Dev

找不到属性setter方法setAlpha

来自分类Dev

如何使用保留版本重构getter和setter方法?

来自分类Dev

在 javascript 中使用 setter 或方法之间的区别

来自分类Dev

Rails:如何使对象进入setter方法?

来自分类Dev

如何重写龙目岛setter方法

来自分类Dev

JSF 2:ViewParams:setter方法中的操作?

来自分类Dev

在C ++中创建setter函数的最佳方法

Related 相关文章

热门标签

归档