美文网首页
修改原型上属性的值

修改原型上属性的值

作者: 万里独行采花贼 | 来源:发表于2019-02-16 20:58 被阅读0次

1原型属性可读,在构造函数中添加值覆盖原型,也是大家常用的方式。
2原型属性不可读,=号赋值操作无效,但是用defineproperty会在构造函数中生成属性

let protoObj={}
Object.defineProperty(protoObj, "key", {
  enumerable: true,
  configurable: false,
  writable: false,
  value: "static"
});
console.log(protoObj)

function child(){

}
child.prototype=protoObj;
child.prototype.constructor=child;
let cc=new child();

cc.key=123;
console.log(cc);//无效
Object.defineProperty(cc, "key", {
  value: "tom"
});
console.log(cc)//构造函数中设置属性覆盖原型

3属性是setter 走setter Object.defineProperty(..)也可以屏蔽prototype的setter

  var myObject = {
        // _a_:1,
        // 给 a 定义一个 getter 
        get a() {
            return this._a_;
        },
        // 给 a 定义一个 setter 
        set a(val) {
            this._a_ = val * 2;
        }
    };

    function child(){

    }
    child.prototype=myObject;
    child.prototype.constructor=child;
    let cc=new child();
    cc.a=22;
    console.log(cc);

相关文章

  • 修改原型上属性的值

    1原型属性可读,在构造函数中添加值覆盖原型,也是大家常用的方式。2原型属性不可读,=号赋值操作无效,但是用defi...

  • JS 对象基本用法

    声明对象的两种语法 删除对象的属性删除obj已有属性 查看对象的属性 修改或增加对象的属性 无法通过自身修改原型上...

  • for...in和for...of的区别

    for...in ● 遍历对象的可枚举属性,包括对象从原型上继承的属性。●如果对象值值为null或undefine...

  • TypeScript -- 类

    一 ,继承和成员修饰符 注意:类的属性都是实例属性而不是原型属性;方法是原型上的;类里面的属性都需要有初始值 成员...

  • Vue全局事件总线

    添加$bus属性 首先在Vue的prototype原型对象上添加$bus属性,属性的值为当前的Vue对象,作为全局...

  • hasOwnProperty 对象自身属性中是否具有指定的属性(

    hasOwnProperty() 方法会返回一个布尔值,指示对象自身属性中是否具有指定的属性(排除原型上的属性) ...

  • hasOwnProperty 对象自身属性中是否具有指定的属性(

    hasOwnProperty() 方法会返回一个布尔值,指示对象自身属性中是否具有指定的属性(排除原型上的属性) ...

  • Js相关笔记-3

    原型对象的constructor 修改原型对象时,一般要同时修改constructor属性的指向。 // 坏的写法...

  • State讲解,类中this指向,也使用setState修改

    简写形式 直接定义对象属性,原型链方法使用赋值语句的形式+箭头函数 复杂原理形式 setState修改值是引用,不...

  • ES6中Decorator修饰器的用法

    Decorator是一个函数,用来修改类的行为,即可修饰类的静态属性,也可修饰类的原型上的函数。 修改类的静态属性...

网友评论

      本文标题:修改原型上属性的值

      本文链接:https://www.haomeiwen.com/subject/qhiieqtx.html