一、动态属性

注意,原始类型的初始化可以只使用原始字面量形式。如果使用的是 new 关键字,则 JavaScript 会 创建一个 Object 类型的实例,但其行为类似原始值。下面来看看这两种初始化方式的差异

  1. let str = new String('math');
  2. str.age = 18;
  3. console.log(str); // [String: 'math'] { age: 18 }
  4. console.log(str.age); // 18
  5. console.log(typeof str); // object
  6. console.log(typeof str.age); // number

二、复制值

把原始值赋值给另外一个变量时,复制的是值

  1. let num1 = 5;
  2. let num2 = num1;

把引用值赋值给另一个变量时,复制的是指针

  1. let obj1 = new Object();
  2. let obj2 = obj1;
  3. obj1.name = "Nicholas";
  4. console.log(obj2.name); // "Nicholas"

复制值.png