• Constructor vs Object


    1. Constructor:是用于创建和初始化类中创建的一个对象的一种特殊方法。

    语法:

    constructor([arguments])
     { ... }

    在一个类中只能有一个名为 “constructor” 的特殊方法。 一个类中出现多次构造函数 (constructor)方法将会抛出一个 SyntaxError 错误。

    在一个构造方法中可以使用super关键字来调用一个父类的构造方法。

    如果没有显式指定构造方法,则会添加默认的 constructor 方法。

    如果不指定一个构造函数(constructor)方法, 则使用一个默认的构造函数(constructor)。

    例:

    if (test.constructor==Array)
    {
    document.write("1");
    }
    if (test.constructor==Boolean)
    {
    document.write("2");
    }
    if (test.constructor==Date)
    {
    document.write("This is a Date");
    }
    if (test.constructor==String)
    {
    document.write("3");
    }

    2. Object:

    (1)Object.assign()

    可以用作对象的复制

    var obj = { a: 1 };
    var copy = Object.assign({}, obj);
    console.log(copy); // { a: 1 }

    (2)Object.is()

    (3)Object.keys()

    (4)Object.create()

    语法:

    Object.create(proto, [ propertiesObject ])

    例:

    r o;
    o = Object.create(Object.prototype, {
      // foo会成为所创建对象的数据属性
      foo: { writable:true, configurable:true, value: "hello" },
      // bar会成为所创建对象的访问器属性
      bar: {
        configurable: false,
        get: function() { return 10 },
        set: function(value) { console.log("Setting `o.bar` to", value) }
    }})
    
    // 创建一个以另一个空对象为原型,且拥有一个属性p的对象
    o = Object.create({}, { p: { value: 42 } })
    
    // 省略了的属性特性默认为false,所以属性p是不可写,不可枚举,不可配置的:
    o.p = 24
    o.p
    //42
    
    o.q = 12
    for (var prop in o) {
       console.log(prop)
    }
    //"q"
    
    delete o.p
    //false
    
    //创建一个可写的,可枚举的,可配置的属性p
    o2 = Object.create({}, { p: { value: 42, writable: true, enumerable: true, configurable: true } });
  • 相关阅读:
    C/C++编译过程
    Struts2入门01
    NET CORE 微软官方说明链接
    PL/SQL控制语句(二、循环控制语句)
    PL/SQL控制语句(一、分支控制语句)
    PL/SQL数据类型
    PL/SQL变量的作用域和可见性
    PL/SQL变量和类型
    CopyWebpackPlugin 的使用
    flex
  • 原文地址:https://www.cnblogs.com/DYjun/p/9942274.html
Copyright © 2020-2023  润新知