Home PC Games Linux Windows Database Network Programming Server Mobile  
  Home \ Programming \ JavaScript prototype and prototype chain and project combat     - PHP 7.0 Upgrade Notes (Linux)

- Erlang concurrency and foundation (Programming)

- Ubuntu 14.04 modify environment variables (Linux)

- How to install Git client in Ubuntu (Linux)

- Wi-Fi hackers use to attack your seven methods (Linux)

- Depth understanding of C language (Programming)

- Linux Getting Started tutorial: How to backup Linux systems (Linux)

- Detailed Linux platform chip programming process (Programming)

- How to enhance the security of Linux systems (Linux)

- How to ensure the Linux SSH login security with one-time password (Linux)

- Android using SVG vector graphics to create cool animation effects (Programming)

- Hadoop vs spark (Server)

- Repair Chrome for Linux is (Linux)

- CentOS environment prepared crontab scheduled tasks (Linux)

- Under Linux using Magent + Memcached cache server cluster deployment (Server)

- Three minutes to teach you to easily grasp the grep command regular expression (Linux)

- How to configure Ceph stored on CentOS 7.0 (Server)

- Cacti installation deployment under CentOS 6.6 (Server)

- Android realize RippleEffect water (Programming)

- Quickly build and install Linux KVM system (Linux)

  JavaScript prototype and prototype chain and project combat
  Add Date : 2018-11-21      
  1. Basic Concepts
1.1 Prototype
Each function has a prototype (prototype) property that is a pointer to an object, and the object is to use all the forces of the class that contains the shared properties and methods.

No prototype way:

// Decimal point, tax rate

var decimalDigits = 2,

tax = 5;

function add (x, y) {

    return x + y;


function subtract (x, y) {

    return x - y;


// Alert (add (1, 3));

The first way:

var Calculator = function (decimalDigits, tax) {

    this.decimalDigits = decimalDigits;

    this.tax = tax;



Calculator.prototype = {

    add: function (x, y) {

        return x + y;



    subtract: function (x, y) {

        return x - y;



// Alert ((new Calculator ()) add (1, 3).);

The second way:

Calculator.prototype = function () {} ();

Calculator.prototype = function () {

    add = function (x, y) {

        return x + y;



    subtract = function (x, y) {

        return x - y;


    return {

        add: add,

        subtract: subtract


} ();


// Alert ((new Calculator ()) add (11, 3).);

Of course, we can also step declaration

var BaseCalculator = function () {

    // Declare a number of decimal places for each instance

    this.decimalDigits = 2;


// Prototype to BaseCalculator extended two object methods

BaseCalculator.prototype.add = function (x, y) {

    return x + y;



BaseCalculator.prototype.subtract = function (x, y) {

    return x - y;


1.2 prototype chain

ECMAScript describes the concept of the prototype chain, and the prototype chain as the main method of implementation inheritance. The basic idea is to use the prototype to make a reference type inherits from another type of reference properties and methods. A brief review of the relationship between the constructor and prototype instance: Each constructor function has a prototype object, the prototype object contains a pointer to a pointer to the constructor, and contains a pointer to the actual prototype object's internal pointer. So if we make a prototype object is equal to another instance of the type, what will happen then? Obviously, at this time the prototype object will contain a pointer to a pointer to another prototype, correspondingly, another prototype also includes a pointer to a pointer to another constructor. If the prototype is another instance of another type, the above relationship is still valid, so progressive layers, and constitutes an example of the prototype chain. This is the basic concept of the so-called prototype chain.

function SuperType () {

  this.property = true;


SuperType.prototype.getSuperValue = function () {

  return this.property;


function SubType () {

  this.subproperty = false;


SubType.prototype = newSuperType ();

SubType.prototype.getSubValue = function () {

  return this.subproperty;


var instance = new SubType ();

alert (instance.getSuperValue ()); // true

2. The project combat
Roadside assistance in the project, when the operator every step of the operation carried out, must be recorded in the log table inside the case, to allow administrators to clearly see the operation process every step of the operation, in order not to repeat the development, need to make a case record tools JS: CaseLogUtil.js

Wherein, when we want to call this method when instantiated directly CaseLog, call its methods to log.

Example: var test = new CaseLog ( "11", "content");

      test.log ();
- Parts of the partition is not recognized after Debian mount mobile hard disk (Linux)
- The maximum subsequence algorithm and optimization problems (Programming)
- MySQL5.7 implement virtual column expression index (Database)
- How to install the Linux text editor Atom 0.124.0 (Linux)
- pscp use Detailed Windows and Linux each file transfer tool (Linux)
- Open Ubuntu system updates (Linux)
- Ubuntu install video conversion tool Selene (Linux)
- When RHEL7 use fdisk partition, all partitions can not be used (Linux)
- Configuring xdebug debugging environment in Ubuntu 14.04 under the PhpStorm (Linux)
- C ++ string in the end (Programming)
- Ubuntu 10.10 install Oracle 10g graphic tutorials (Database)
- LAN in Ubuntu shared folders to Windows (Linux)
- Java Builder mode (Programming)
- Editor of the popular Linux Gvim (Linux)
- Let Linux boot methods to enter characters interface and set FrameBuffer resolution methods (Linux)
- grep command Series: How to Use the grep command in Linux / UNIX (Linux)
- Spring WebSocket Comments (Programming)
- hadoop 2.7.1 High Availability Setup Deployment (Server)
- Chromium Install Flash Official Guide (Linux)
- Linux file and directory management - ls, cp, mv (Linux)
  CopyRight 2002-2022 newfreesoft.com, All Rights Reserved.