将一个指定的对象的原型设置为另一个对象或者null(既对象的[[Prototype]]内部属性).

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

示例:

<script type="text/javascript">
            var Car=function(){
                this.name="";
            }
            
            var benz=new Car();
            console.log(benz.name);
            
            Object.setPrototypeOf(benz,{name:"小轿车",price:"23456"});
            console.log(benz.name);  //未重写
            console.log(benz.price);
        </script>

ES6 Object.setPrototypeOf ()方法和defineProperty()方法的使用 随笔 第1张

 

 

 

Object.defineProperty

Object.defineProperty(被扩展的对象名,属性名,{属性的值}) 可以用于扩展对象的属性

不过可以指定只读属性

示例:

<!DOCTYPE html>
<html>

    <head>
        <meta charset="UTF-8">
        <title>Object.defineProperty()</title>
    </head>

    <body>
        <script>
            var tom = {
                name: "tom"
            };
            tom.age = 90;
            tom["age"] = 88;
            console.log("tom.age=" + tom.age);

            var rose = {
                name: "rose"
            };
            Object.defineProperty(rose, "age", {
                value: 98,
                writable:false  //只读
            });
            rose.age=18;  //修改无效
            console.log("rose.age=" + rose.age);
        </script>
    </body>

</html>

ES6 Object.setPrototypeOf ()方法和defineProperty()方法的使用 随笔 第2张

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄