ES6 Object.setPrototypeOf ()方法和defineProperty()方法的使用

 

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

示例:html

<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>

 

 

 

Object.defineProperty

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

不过能够指定只读属性this

示例:spa

<!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>

相关文章
相关标签/搜索