zoukankan      html  css  js  c++  java
  • JavaScript基础 面向对象

    参考:http://bbs.51js.com/thread-74195-1-1.html

    构造器

    构造器代码必须放在整个类定义的最后,这样做是为了保证在它当中被调用的方法都已经被定义了。

    私有实例成员[变量和方法]

    私有实例成员在 JavaScript 中实际上可以用函数内的局部变量来实现,它相当于类的私有实例成员

    他们只能在该类的对象内部被使用,在对象外无法使用。

    创建私有方法有两种方式,一种是直接在类中定义方法,另一种是先定义一个局部变量(私有实例字段),然后定义一个匿名方法赋值给它。

    公有实例成员:两种方法,prototype 和this定义

    1、prototype 方式只应该在类外定义。this 方式只能在类中定义。

    2、prototype 方式如果在类中定义时,则存取私有实例成员时,总是存取最后一个对象实例中的私有实例成员。

    3、prototype 方式定义的公有实例成员是创建在类的原型之上的成员。this 方式定义的公有实例成员,是直接创建在类的实例对象上的成员。

    基于前两点区别,我们可以得到这样的结论:如果要在公有实例方法中存取私有实例成员,那么必须用 this 方式定义。

    关于第三点区别,我们后面在讨论继承时再对它进行更深入的剖析。这里只要知道有这个区别就可以了。

    不要把通过 prototype 方式创建的公有实例方法定义在类的内部!

    公有静态成员

    定义的方式就是给 className.memberName 直接赋值。

    一定不要将公有静态成员定义在它所在的类的内部

    静态类

    myClass = new function() {...}

    继承:一种是原型继承法,一种是调用继承法

    [原型继承法]

    子类继承来的公有实例方法中,如果调用了私有实例字段或者私有实例方法,则所调用的这些私有实例成员是属于父类的。

    子类中定义的实例方法,如果调用了私有实例字段或者私有实例方法,则所调用的这些私有实例成员是属于子类的。

    定义在父类原型上的方法,会被子类继承。

    子类中定义的实例方法是不能访问父类中定义的私有实例成员的。

    静态成员是不会被继承的。

    [调用继承法]

    定义在父类原型上的方法,不会被子类继承。

    子类中定义的实例方法同样不能访问父类中定义的私有实例成员的。

    静态成员同样不会被继承的。

    是通过调用继承法,可以实现多继承。也就是说,一个子类可以从多个父类中继承通过 this 方式定义在父类内部的所有公有实例成员。

    function subClass() {

    // inherit

    parentClass.call(this);

    方法重载示例

    function parentClass() {

    this.method = function() {

    alert("parentClass method");

    }

    }

    function subClass() {

    var method = this.method;

    this.method = function() {

    method.call(this);

    alert("subClass method");

    }

    }

    subClass.prototype = new parentClass();

    subClass.prototype.constructor = subClass;

    var o = new subClass();

    o.method();

  • 相关阅读:
    React生命周期, 兄弟组件之间通信
    React组件式编程Demo-用户的增删改查
    React之this.refs, 实现数据双向绑定
    CCF CSP 201812-4 数据中心
    CCF CSP 201812-4 数据中心
    PAT 顶级 1020 Delete At Most Two Characters (35 分)
    PAT 顶级 1020 Delete At Most Two Characters (35 分)
    Codeforces 1245C Constanze's Machine
    Codeforces 1245C Constanze's Machine
    CCF CSP 201712-4 行车路线
  • 原文地址:https://www.cnblogs.com/2018/p/1838809.html
Copyright © 2011-2022 走看看