原型的一些注意事项

67 阅读1分钟
  • 系统内置构造函数的原型属性是不可以修改的,可以操作这个对象的属性(如Arrary,Function,Object)
  var arr = [1, 34, 5] //new Array(1,34,5)
  Array.prototype = {
    name: "karen"
  } //原型不能更改,不报错,也不会生效
  console.log(Array.prototype)
  Array.prototype.age = 88 //但是可以他们的原型属性可以修改
  console.log(Array.prototype.age)
  • 对象或函数修改属性(增、改、删)不会修改对其原型有影响
 function fn() {
    name = "karen"
    age = 18
  }
  var obj = {
    name: "jack",
    age: 20
  }
  fn.prototype = obj
  fn.age = 22 //这里只会覆盖fn的age,不会覆盖到fn的原型
  fn.job = "teacher"
  fn.name = null
  console.log(fn)
  console.log(fn.prototype)

image.png