Comprensión de las clases en JavaScript

Introducción

JavaScript es un lenguaje basado en prototipos, y cada objeto en JavaScript tiene una propiedad interna oculta llamada [[Prototype]]que se puede usar para ampliar las propiedades y métodos de los objetos. 

Hasta hace poco, los desarrolladores diligentes utilizaban funciones de constructor para imitar un patrón de diseño orientado a objetos en JavaScript. La especificación de lenguaje ECMAScript 2015, a menudo denominada ES6, introdujo clases en el lenguaje JavaScript. Las clases en JavaScript en realidad no ofrecen funcionalidad adicional y, a menudo, se describen como que proporcionan un "azúcar sintáctico" sobre los prototipos y la herencia, ya que ofrecen una sintaxis más limpia y elegante. Debido a que otros lenguajes de programación usan clases, la sintaxis de clases en JavaScript hace que sea más sencillo para los desarrolladores moverse entre lenguajes.

Las clases son funciones

Una clase de JavaScript es un tipo de función. Las clases se declaran con la classpalabra clave. Usaremos la sintaxis de expresión de función para inicializar una función y la sintaxis de expresión de clase para inicializar una clase.

// Initializing a function with a function expression
const x = function() {}
// Initializing a class with a class expression
const y = class {}

Podemos acceder al [[Prototype]]de un objeto usando el Object.getPrototypeOf()método . Usemos eso para probar la función vacía que creamos.

Object.getPrototypeOf(x);
Outputƒ () { [native code] }

También podemos usar ese método en la clase que acabamos de crear.

Object.getPrototypeOf(y);
Outputƒ () { [native code] }

El código declarado con functiony classambos devuelven una función [[Prototype]]. Con los prototipos, cualquier función puede convertirse en una instancia de constructor usando la newpalabra clave.

const x = function() {}

// Initialize a constructor from a function
const constructorFromFunction = new x();

console.log(constructorFromFunction);
Outputx {}
constructor: ƒ ()

Esto también se aplica a las clases.

const y = class {}

// Initialize a constructor from a class
const constructorFromClass = new y();

console.log(constructorFromClass);
Outputy {}
constructor: class

Estos ejemplos de constructores de prototipos están vacíos, pero podemos ver cómo debajo de la sintaxis, ambos métodos están logrando el mismo resultado final.

Definiendo una clase

En el tutorial de prototipos y herencia , creamos un ejemplo basado en la creación de personajes en un juego de rol basado en texto. Continuemos con ese ejemplo aquí para actualizar la sintaxis de funciones a clases.

Una función constructora se inicializa con una serie de parámetros, que se asignarían como propiedades de this, refiriéndose a la función en sí. La primera letra del identificador estaría en mayúscula por convención.

constructor.js

// Initializing a constructor function
function Hero(name, level) {
    this.name = name;
    this.level = level;
}

Cuando traducimos esto a la sintaxis de la clase , que se muestra a continuación, vemos que está estructurado de manera muy similar.

class.js

// Initializing a class definition
class Hero {
    constructor(name, level) {
        this.name = name;
        this.level = level;
    }
}

Sabemos que una función de constructor está destinada a ser un modelo de objeto por el uso de mayúsculas en la primera letra del inicializador (que es opcional) y por la familiaridad con la sintaxis. La classpalabra clave comunica de forma más sencilla el objetivo de nuestra función.

La única diferencia en la sintaxis de la inicialización es usar la classpalabra clave en lugar de functiony asignar las propiedades dentro de un constructor()método.

Definición de métodos

La práctica común con las funciones constructoras es asignar métodos directamente al en prototypelugar de en la inicialización, como se ve en el greet()método siguiente.

constructor.js

function Hero(name, level) {
    this.name = name;
    this.level = level;
}

// Adding a method to the constructor
Hero.prototype.greet = function() {
    return `${this.name} says hello.`;
}

Con las clases, esta sintaxis se simplifica y el método se puede agregar directamente a la clase. Usando la abreviatura de definición de método introducida en ES6, definir un método es un proceso aún más conciso.

class.js

class Hero {
    constructor(name, level) {
        this.name = name;
        this.level = level;
    }

    // Adding a method to the constructor
    greet() {
        return `${this.name} says hello.`;
    }
}

Echemos un vistazo a estas propiedades y métodos en acción. Crearemos una nueva instancia de Herouso de la newpalabra clave y asignaremos algunos valores.

const hero1 = new Hero('Varg', 1);

Si imprimimos más información sobre nuestro nuevo objeto con console.log(hero1), podemos ver más detalles sobre lo que está sucediendo con la inicialización de la clase.

OutputHero {name: "Varg", level: 1}
__proto__:
  ▶ constructor: class Hero
  ▶ greet: ƒ greet()

Podemos ver en la salida que las funciones constructor()y greet()se aplicaron a __proto__, o [[Prototype]]de hero1, y no directamente como un método en el hero1objeto. Si bien esto es claro al hacer funciones de constructor, no es obvio al crear clases. Las clases permiten una sintaxis más simple y concisa, pero sacrifican algo de claridad en el proceso.

Ampliando una clase

Una característica ventajosa de las funciones y clases de constructor es que se pueden extender a nuevos planos de objetos basados ​​en el padre. Esto evita la repetición de código para objetos que son similares pero necesitan algunas características adicionales o más específicas.

Se pueden crear nuevas funciones de constructor a partir del padre utilizando el call()método. En el siguiente ejemplo, crearemos una clase de carácter más específica llamada Magey le asignaremos las propiedades de Herousando call(), además de agregar una propiedad adicional.

constructor.js

// Creating a new constructor from the parent
function Mage(name, level, spell) {
    // Chain constructor with call
    Hero.call(this, name, level);

    this.spell = spell;
}

En este punto, podemos crear una nueva instancia de Mageusar las mismas propiedades Hero, así como una nueva que agregamos.

const hero2 = new Mage('Lejon', 2, 'Magic Missile');

Enviando hero2a la consola, podemos ver que hemos creado un nuevo Magebasado en el constructor.

OutputMage {name: "Lejon", level: 2, spell: "Magic Missile"}
__proto__:
    ▶ constructor: ƒ Mage(name, level, spell)

Con las clases de ES6, la superpalabra clave se usa en lugar de callpara acceder a las funciones principales. Usaremos extendspara referirnos a la clase de padres.

class.js

// Creating a new class from the parent
class Mage extends Hero {
    constructor(name, level, spell) {
        // Chain constructor with super
        super(name, level);

        // Add a new property
        this.spell = spell;
    }
}

Ahora podemos crear una nueva Mageinstancia de la misma manera.

const hero2 = new Mage('Lejon', 2, 'Magic Missile');

Imprimiremos hero2en la consola y veremos el resultado.

OutputMage {name: "Lejon", level: 2, spell: "Magic Missile"}
__proto__: Hero
    ▶ constructor: class Mage

La salida es casi exactamente la misma, excepto que en la construcción de la clase, el [[Prototype]]está vinculado al padre, en este caso Hero.

A continuación se muestra una comparación en paralelo de todo el proceso de inicialización, adición de métodos y herencia de una función constructora y una clase.

constructor.js

function Hero(name, level) {
    this.name = name;
    this.level = level;
}

// Adding a method to the constructor
Hero.prototype.greet = function() {
    return `${this.name} says hello.`;
}

// Creating a new constructor from the parent
function Mage(name, level, spell) {
    // Chain constructor with call
    Hero.call(this, name, level);

    this.spell = spell;
}

class.js

// Initializing a class
class Hero {
    constructor(name, level) {
        this.name = name;
        this.level = level;
    }

    // Adding a method to the constructor
    greet() {
        return `${this.name} says hello.`;
    }
}

// Creating a new class from the parent
class Mage extends Hero {
    constructor(name, level, spell) {
        // Chain constructor with super
        super(name, level);

        // Add a new property
        this.spell = spell;
    }
}

Aunque la sintaxis es bastante diferente, el resultado subyacente es casi el mismo entre ambos métodos. Las clases nos brindan una forma más concisa de crear planos de objetos, y las funciones de constructor describen con mayor precisión lo que está sucediendo bajo el capó.

Conclusión

En este tutorial, aprendimos sobre las similitudes y diferencias entre las funciones de constructor de JavaScript y las clases de ES6. Tanto las clases como los constructores imitan un modelo de herencia orientado a objetos a JavaScript, que es un lenguaje de herencia basado en prototipos.

Comprender la herencia prototípica es fundamental para ser un desarrollador de JavaScript eficaz. Estar familiarizado con las clases es extremadamente útil, ya que las bibliotecas populares de JavaScript como React hacen un uso frecuente de la classsintaxis.

#javascript 

What is GEEK

Buddha Community

Comprensión de las clases en JavaScript

Rahul Jangid

1622207074

What is JavaScript - Stackfindover - Blog

Who invented JavaScript, how it works, as we have given information about Programming language in our previous article ( What is PHP ), but today we will talk about what is JavaScript, why JavaScript is used The Answers to all such questions and much other information about JavaScript, you are going to get here today. Hope this information will work for you.

Who invented JavaScript?

JavaScript language was invented by Brendan Eich in 1995. JavaScript is inspired by Java Programming Language. The first name of JavaScript was Mocha which was named by Marc Andreessen, Marc Andreessen is the founder of Netscape and in the same year Mocha was renamed LiveScript, and later in December 1995, it was renamed JavaScript which is still in trend.

What is JavaScript?

JavaScript is a client-side scripting language used with HTML (Hypertext Markup Language). JavaScript is an Interpreted / Oriented language called JS in programming language JavaScript code can be run on any normal web browser. To run the code of JavaScript, we have to enable JavaScript of Web Browser. But some web browsers already have JavaScript enabled.

Today almost all websites are using it as web technology, mind is that there is maximum scope in JavaScript in the coming time, so if you want to become a programmer, then you can be very beneficial to learn JavaScript.

JavaScript Hello World Program

In JavaScript, ‘document.write‘ is used to represent a string on a browser.

<script type="text/javascript">
	document.write("Hello World!");
</script>

How to comment JavaScript code?

  • For single line comment in JavaScript we have to use // (double slashes)
  • For multiple line comments we have to use / * – – * /
<script type="text/javascript">

//single line comment

/* document.write("Hello"); */

</script>

Advantages and Disadvantages of JavaScript

#javascript #javascript code #javascript hello world #what is javascript #who invented javascript

Hire Dedicated JavaScript Developers -Hire JavaScript Developers

It is said that a digital resource a business has must be interactive in nature, so the website or the business app should be interactive. How do you make the app interactive? With the use of JavaScript.

Does your business need an interactive website or app?

Hire Dedicated JavaScript Developer from WebClues Infotech as the developer we offer is highly skilled and expert in what they do. Our developers are collaborative in nature and work with complete transparency with the customers.

The technology used to develop the overall app by the developers from WebClues Infotech is at par with the latest available technology.

Get your business app with JavaScript

For more inquiry click here https://bit.ly/31eZyDZ

Book Free Interview: https://bit.ly/3dDShFg

#hire dedicated javascript developers #hire javascript developers #top javascript developers for hire #hire javascript developer #hire a freelancer for javascript developer #hire the best javascript developers

joe biden

1617257581

Software de restauración de Exchange para restaurar sin problemas PST en Exchange Server

¿Quiere restaurar los buzones de correo de PST a Exchange Server? Entonces, estás en la página correcta. Aquí, lo guiaremos sobre cómo puede restaurar fácilmente mensajes y otros elementos de PST a MS Exchange Server.

Muchas veces, los usuarios necesitan restaurar los elementos de datos de PST en Exchange Server, pero debido a la falta de disponibilidad de una solución confiable, los usuarios no pueden obtener la solución. Háganos saber primero sobre el archivo PST y MS Exchange Server.

Conozca PST y Exchange Server

PST es un formato de archivo utilizado por MS Outlook, un cliente de correo electrónico de Windows y muy popular entre los usuarios domésticos y comerciales.

Por otro lado, Exchange Server es un poderoso servidor de correo electrónico donde todos los datos se almacenan en un archivo EDB. Los usuarios generalmente guardan la copia de seguridad de los buzones de correo de Exchange en el archivo PST, pero muchas veces, los usuarios deben restaurar los datos del archivo PST en Exchange. Para resolver este problema, estamos aquí con una solución profesional que discutiremos en la siguiente sección de esta publicación.

Un método profesional para restaurar PST a Exchange Server

No le recomendamos que elija una solución al azar para restaurar los datos de PST en Exchange Server. Por lo tanto, al realizar varias investigaciones, estamos aquí con una solución inteligente y conveniente, es decir, Exchange Restore Software. Es demasiado fácil de manejar por todos los usuarios y restaurar cómodamente todos los datos del archivo PST a Exchange Server.

Funciones principales ofrecidas por Exchange Restore Software

El software es demasiado simple de usar y se puede instalar fácilmente en todas las versiones de Windows. Con unos pocos clics, la herramienta puede restaurar los elementos del buzón de Exchange.

No es necesario que MS Outlook restaure los datos PST en Exchange. Todos los correos electrónicos, contactos, notas, calendarios, etc. se restauran desde el archivo PST a Exchange Server.

Todas las versiones de Outlook son compatibles con la herramienta, como Outlook 2019, 2016, 2013, 2010, 2007, etc. La herramienta proporciona varios filtros mediante los cuales se pueden restaurar los datos deseados desde un archivo PST a Exchange Server. El programa se puede instalar en todas las versiones de Windows como Windows 10, 8.1, 8, 7, XP, Vista, etc.

Descargue la versión de demostración del software de restauración de Exchange y analice el funcionamiento del software restaurando los primeros 50 elementos por carpeta.

Líneas finales

No existe una solución manual para restaurar los buzones de correo de Exchange desde el archivo PST. Por lo tanto, hemos explicado una solución fácil e inteligente para restaurar datos de archivos PST en Exchange Server. Simplemente puede usar este software y restaurar todos los datos de PST a Exchange Server.

Más información:- https://www.datavare.com/software/exchange-restore.html

#intercambio de software de restauración #intercambio de restauración #buzón del servidor de intercambio #herramienta de restauración de intercambio

Niraj Kafle

1589255577

The essential JavaScript concepts that you should understand

As a JavaScript developer of any level, you need to understand its foundational concepts and some of the new ideas that help us developing code. In this article, we are going to review 16 basic concepts. So without further ado, let’s get to it.

#javascript-interview #javascript-development #javascript-fundamental #javascript #javascript-tips

Comprensión de las clases en JavaScript

Introducción

JavaScript es un lenguaje basado en prototipos, y cada objeto en JavaScript tiene una propiedad interna oculta llamada [[Prototype]]que se puede usar para ampliar las propiedades y métodos de los objetos. 

Hasta hace poco, los desarrolladores diligentes utilizaban funciones de constructor para imitar un patrón de diseño orientado a objetos en JavaScript. La especificación de lenguaje ECMAScript 2015, a menudo denominada ES6, introdujo clases en el lenguaje JavaScript. Las clases en JavaScript en realidad no ofrecen funcionalidad adicional y, a menudo, se describen como que proporcionan un "azúcar sintáctico" sobre los prototipos y la herencia, ya que ofrecen una sintaxis más limpia y elegante. Debido a que otros lenguajes de programación usan clases, la sintaxis de clases en JavaScript hace que sea más sencillo para los desarrolladores moverse entre lenguajes.

Las clases son funciones

Una clase de JavaScript es un tipo de función. Las clases se declaran con la classpalabra clave. Usaremos la sintaxis de expresión de función para inicializar una función y la sintaxis de expresión de clase para inicializar una clase.

// Initializing a function with a function expression
const x = function() {}
// Initializing a class with a class expression
const y = class {}

Podemos acceder al [[Prototype]]de un objeto usando el Object.getPrototypeOf()método . Usemos eso para probar la función vacía que creamos.

Object.getPrototypeOf(x);
Outputƒ () { [native code] }

También podemos usar ese método en la clase que acabamos de crear.

Object.getPrototypeOf(y);
Outputƒ () { [native code] }

El código declarado con functiony classambos devuelven una función [[Prototype]]. Con los prototipos, cualquier función puede convertirse en una instancia de constructor usando la newpalabra clave.

const x = function() {}

// Initialize a constructor from a function
const constructorFromFunction = new x();

console.log(constructorFromFunction);
Outputx {}
constructor: ƒ ()

Esto también se aplica a las clases.

const y = class {}

// Initialize a constructor from a class
const constructorFromClass = new y();

console.log(constructorFromClass);
Outputy {}
constructor: class

Estos ejemplos de constructores de prototipos están vacíos, pero podemos ver cómo debajo de la sintaxis, ambos métodos están logrando el mismo resultado final.

Definiendo una clase

En el tutorial de prototipos y herencia , creamos un ejemplo basado en la creación de personajes en un juego de rol basado en texto. Continuemos con ese ejemplo aquí para actualizar la sintaxis de funciones a clases.

Una función constructora se inicializa con una serie de parámetros, que se asignarían como propiedades de this, refiriéndose a la función en sí. La primera letra del identificador estaría en mayúscula por convención.

constructor.js

// Initializing a constructor function
function Hero(name, level) {
    this.name = name;
    this.level = level;
}

Cuando traducimos esto a la sintaxis de la clase , que se muestra a continuación, vemos que está estructurado de manera muy similar.

class.js

// Initializing a class definition
class Hero {
    constructor(name, level) {
        this.name = name;
        this.level = level;
    }
}

Sabemos que una función de constructor está destinada a ser un modelo de objeto por el uso de mayúsculas en la primera letra del inicializador (que es opcional) y por la familiaridad con la sintaxis. La classpalabra clave comunica de forma más sencilla el objetivo de nuestra función.

La única diferencia en la sintaxis de la inicialización es usar la classpalabra clave en lugar de functiony asignar las propiedades dentro de un constructor()método.

Definición de métodos

La práctica común con las funciones constructoras es asignar métodos directamente al en prototypelugar de en la inicialización, como se ve en el greet()método siguiente.

constructor.js

function Hero(name, level) {
    this.name = name;
    this.level = level;
}

// Adding a method to the constructor
Hero.prototype.greet = function() {
    return `${this.name} says hello.`;
}

Con las clases, esta sintaxis se simplifica y el método se puede agregar directamente a la clase. Usando la abreviatura de definición de método introducida en ES6, definir un método es un proceso aún más conciso.

class.js

class Hero {
    constructor(name, level) {
        this.name = name;
        this.level = level;
    }

    // Adding a method to the constructor
    greet() {
        return `${this.name} says hello.`;
    }
}

Echemos un vistazo a estas propiedades y métodos en acción. Crearemos una nueva instancia de Herouso de la newpalabra clave y asignaremos algunos valores.

const hero1 = new Hero('Varg', 1);

Si imprimimos más información sobre nuestro nuevo objeto con console.log(hero1), podemos ver más detalles sobre lo que está sucediendo con la inicialización de la clase.

OutputHero {name: "Varg", level: 1}
__proto__:
  ▶ constructor: class Hero
  ▶ greet: ƒ greet()

Podemos ver en la salida que las funciones constructor()y greet()se aplicaron a __proto__, o [[Prototype]]de hero1, y no directamente como un método en el hero1objeto. Si bien esto es claro al hacer funciones de constructor, no es obvio al crear clases. Las clases permiten una sintaxis más simple y concisa, pero sacrifican algo de claridad en el proceso.

Ampliando una clase

Una característica ventajosa de las funciones y clases de constructor es que se pueden extender a nuevos planos de objetos basados ​​en el padre. Esto evita la repetición de código para objetos que son similares pero necesitan algunas características adicionales o más específicas.

Se pueden crear nuevas funciones de constructor a partir del padre utilizando el call()método. En el siguiente ejemplo, crearemos una clase de carácter más específica llamada Magey le asignaremos las propiedades de Herousando call(), además de agregar una propiedad adicional.

constructor.js

// Creating a new constructor from the parent
function Mage(name, level, spell) {
    // Chain constructor with call
    Hero.call(this, name, level);

    this.spell = spell;
}

En este punto, podemos crear una nueva instancia de Mageusar las mismas propiedades Hero, así como una nueva que agregamos.

const hero2 = new Mage('Lejon', 2, 'Magic Missile');

Enviando hero2a la consola, podemos ver que hemos creado un nuevo Magebasado en el constructor.

OutputMage {name: "Lejon", level: 2, spell: "Magic Missile"}
__proto__:
    ▶ constructor: ƒ Mage(name, level, spell)

Con las clases de ES6, la superpalabra clave se usa en lugar de callpara acceder a las funciones principales. Usaremos extendspara referirnos a la clase de padres.

class.js

// Creating a new class from the parent
class Mage extends Hero {
    constructor(name, level, spell) {
        // Chain constructor with super
        super(name, level);

        // Add a new property
        this.spell = spell;
    }
}

Ahora podemos crear una nueva Mageinstancia de la misma manera.

const hero2 = new Mage('Lejon', 2, 'Magic Missile');

Imprimiremos hero2en la consola y veremos el resultado.

OutputMage {name: "Lejon", level: 2, spell: "Magic Missile"}
__proto__: Hero
    ▶ constructor: class Mage

La salida es casi exactamente la misma, excepto que en la construcción de la clase, el [[Prototype]]está vinculado al padre, en este caso Hero.

A continuación se muestra una comparación en paralelo de todo el proceso de inicialización, adición de métodos y herencia de una función constructora y una clase.

constructor.js

function Hero(name, level) {
    this.name = name;
    this.level = level;
}

// Adding a method to the constructor
Hero.prototype.greet = function() {
    return `${this.name} says hello.`;
}

// Creating a new constructor from the parent
function Mage(name, level, spell) {
    // Chain constructor with call
    Hero.call(this, name, level);

    this.spell = spell;
}

class.js

// Initializing a class
class Hero {
    constructor(name, level) {
        this.name = name;
        this.level = level;
    }

    // Adding a method to the constructor
    greet() {
        return `${this.name} says hello.`;
    }
}

// Creating a new class from the parent
class Mage extends Hero {
    constructor(name, level, spell) {
        // Chain constructor with super
        super(name, level);

        // Add a new property
        this.spell = spell;
    }
}

Aunque la sintaxis es bastante diferente, el resultado subyacente es casi el mismo entre ambos métodos. Las clases nos brindan una forma más concisa de crear planos de objetos, y las funciones de constructor describen con mayor precisión lo que está sucediendo bajo el capó.

Conclusión

En este tutorial, aprendimos sobre las similitudes y diferencias entre las funciones de constructor de JavaScript y las clases de ES6. Tanto las clases como los constructores imitan un modelo de herencia orientado a objetos a JavaScript, que es un lenguaje de herencia basado en prototipos.

Comprender la herencia prototípica es fundamental para ser un desarrollador de JavaScript eficaz. Estar familiarizado con las clases es extremadamente útil, ya que las bibliotecas populares de JavaScript como React hacen un uso frecuente de la classsintaxis.

#javascript