Home PC Games Linux Windows Database Network Programming Server Mobile  
  Home \ Programming \ JavaScript prototype and prototype chain and project combat     - Linux Getting Started tutorial: Experience Xen Virtual Machine chapter (Linux)

- PL / SQL -> UTL_FILE use presentation package (Database)

- MySQL5.6.17 compiler installation under CentOS (Database)

- Talk about the Linux ABI compatibility Application (Linux)

- Linux System Tutorial: How to Check MariaDB server versions (Database)

- LogStash log analysis display system (Linux)

- Bash added to the Vi mode indicator (Linux)

- How to configure MongoDB replica set (Database)

- Ubuntu 15.04 using the Eclipse 4.4, Java 8 and WTP (Linux)

- GitLab installation configuration notes (Linux)

- Django how to generate content in non-HTML formats (Programming)

- ELKstack log analysis platform (Server)

- Basic Operation Linux files and directories (Linux)

- Create a project using Android Studio LinearLayout (Programming)

- Oracle data files deleted recover after physical (Database)

- Linux - Common process the command (Linux)

- Configuring a Linux operating system security management services Explain (Linux)

- Oracle Enterprise Linux 64-bit install apache-tomcat-7.0.53 step (Server)

- Linux Network Programming --IP packet format Detailed (Programming)

- Linux system package manager -RPM (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 ();
- Java memory area Explanation (Programming)
- C # compiler to achieve functional use in the runtime (Programming)
- Oracle 11g user rights management study notes (Database)
- To install Oracle Database Details and FAQ Summary under CentOS (Database)
- IOS interview questions Summary (Programming)
- Hadoop upload files error solved (Server)
- RHEL5 stalled due to power service error system can not start (Linux)
- Linux system find command Detailed (Linux)
- Use mysqldump MySQL database backup - Linux Shell Scripting (Database)
- Java proxy use and proxy principle (Programming)
- C ++ inline functions (Programming)
- Linux cron job (crontab) Examples (Linux)
- Oracle 11g manually create a database (Database)
- Drawing from the Android source code analysis View (Programming)
- Creating and extracting archives 11 tar command examples in Linux (Linux)
- Monitor traffic Linux Shell Edition (Programming)
- 20 Unix / Linux command skills (Linux)
- innodb storage engine backup tool --Xtrabackup (Database)
- How to use tmpfs in RHEL / CentOS 7.0 (Linux)
- U disk to install Windows and Ubuntu 15.04 dual system (Programming)
  CopyRight 2002-2022 newfreesoft.com, All Rights Reserved.