美文网首页
es5构造函数

es5构造函数

作者: 酒暖花深Q | 来源:发表于2021-05-14 12:10 被阅读0次
  function Star (uname, age) {
      this.uname = uname;
      this.age = age;
      this.sing = function () {
        console.log('I like sing songs')
      }
    }
实例成员

实例成员就是构造函数内部通过 this添加的成员,uname, age ,sing就是实例成员
实例成员只能通过实例化对象来访问

    var ldh = new Star('刘德华', 18);
    console.log(ldh.uname);
静态成员

静态成员 指的是在构造函数本身上添加的成员
静态成员只能通过构造函数访问

    Star.sex = 'man'
    console.log(Star.sex)   // man

    console.log(ldh.sex)    // undefined

构造函数很好用,但是容易造成内存浪费的问题

1.png
 var ldh = new Star();
 var zxy = new Star();
 console.log(ldh.sing === zxy.sing ) ; // false

Star实例对象所分配的内存地址不一样
我们希望所有的实例对象使用同一个函数这样比较节省内存地址,需要怎么做呢?

原型对象
   Star.prototype.dance = function () {
     console.log('dance')
   }
   console.log(ldh.dance === zxy.dance);  // true
构造函数通过原型对象分配的函数时所有对象共享的。 javascript 规定,每个构造函数都有一个 prototype属性,指向另一个对象
注意: prototype就是一个对象,这个对象的所有属性和方法都会被构造函数所拥有

我们可以把那些不变的方法,直接定义在 prototype 对象上,这样所有对象的实例就可以共享这些方法

原型是什么: 一个对象 ,prototype原型对象,
作用: 共享方法

相关文章

  • ES5 和 ES6 继承比较:

    ES5构造函数和继承: ES6构造函数和继承:

  • ES5构造函数与ES6类

    ES5 es5并没有类class,我们只能用构造函数来模拟类. 构造函数 构造函数用new操作符一起使用.new具...

  • 构造函数—es5与es6

    //构造函数 构造器-----es5 function Animal(type, name, age, sex) ...

  • JS的继承

    ES5写法 关键点: 在子类构造函数中调用父类构造函数 将子类构造函数原型指向父类构造函数原型。考虑兼容性问题,我...

  • ES6入门 ___ 正则的扩展

    一、RegExp 构造函数 在 ES5中,可以通过 字面量,或者构造函数的方式创建正则表达式。 在构造函数模式下,...

  • ES5的继承 --- 构造函数的继承

    ES5的继承 构造函数的继承 基本思想:在子类型构造函数的内部调用超类型构造函数,通过使用apply()和call...

  • Js 中的类

    ES5中,使用构造函数是这样的: ES6中,构造函数 上面中constructor就是构造方法。注意定义类的方法时...

  • JS中的继承方案(含深浅拷贝)

    ES5继承 构造函数、原型和实例的关系:每一个构造函数(函数对象)都有一个prototype属性,指向函数的原型对...

  • ES5和ES6中继承的不同之处

    1、JS中是没有继承的,不过可以通过构造函数或是原型等实现继承,ES5实现继承的方法——构造函数,当一个构造函数加...

  • ES6 类和ES5 构造函数

    ES5的构造函数和ES6的Class区别 ES5的构造函数的原型上的属性和方法可以遍历/ES6 不能够遍历 ES6...

网友评论

      本文标题:es5构造函数

      本文链接:https://www.haomeiwen.com/subject/frhqjltx.html