JavaScript proto和prototype的区别

JavaScript proto和prototype的区别

在本文中,我们将探讨proto和原型的主题,包括它们的语法、示例,以及它们之间的区别,以及它们在不同方面的差异。

proto和prototype都是帮助创建数组、对象或函数的对象,可以直接使用这些特定的方法或对象,而不占用内存,甚至提供对其构造函数和所有数组方法(如push、pop等)的访问。

proto: 它是一个实际的对象,可以通过使用new创建的对象来从JavaScript继承属性。每个具有行为关联的对象都有一个内部属性[[prototype]]。

语法:

Object.__proto__ = value

示例:

JavaScript

function Student(name,age) {
 this.name = name;
 this.age = age;
}
var stu1 = new Student("John", 50);
 
// Object have proto property 
stu1
 
// Also if apply strict equal to check 
// if both point at the same 
// location then it will return true.
Student.prototype === stu1._proto_

输出:

JavaScript proto和prototype的区别

原型: 它是一个特殊的对象,意味着它拥有实例的共享属性和行为。它是一种从javascript继承属性的方式,因为它在每个函数声明中都可用。

语法:

objectTypeName.prototype.SharedPropertyName=value;

示例:

Javascript

// Constructor function
function Student(name, age) {
    this.name = name;
    this.age = age;
}
 
// Objects
var stu1 = new Student("gfg1", 25);
var stu2 = new Student("gfg2", 42);
 
// Prototype
Student.prototype.getName = function() { return this.name; }
 
 
// Function have property prototype
// Student
 
// Function call using object
stu1.getName();
 
// Constructor function
function Student(name, age) {
    this.name = name;
    this.age = age;
}
 
// Objects
var stu1 = new Student("gfg1", 25);
var stu2 = new Student("gfg2", 42);
 
// Prototype
Student.prototype.getName = function() { return this.name; }
 
 
// Function have property prototype
// Student
 
// function call using object
stu1.getName();
 
// Access prototype
Student.prototype

输出:

JavaScript proto和prototype的区别

proto和prototype之间的区别:

原型(Prototype) 原型(proto)
原型是一种简单的方式,可以通过.prototype在多个对象之间共享行为和数据访问 原型也是一种方式,可以通过__proto__在多个对象之间共享行为和数据访问
所有的对象构造器(函数)都有原型属性。 所有的对象都有原型属性。
原型通过函数访问函数的原型。 语法:(function.prototype) proto通过对象访问函数的原型。 语法:(object.proto
它主要用于解决在构造器模式下创建对象时的内存浪费问题,每个对象都有独立的行为。 它用于查找链中的方法、构造器等。
它是类的属性。 它是该类的实例的属性。
原型属性在声明时设置为函数。所有函数都有原型属性。 proto属性在使用new关键字创建对象时设置为对象。所有新创建的对象都有proto属性。
它是在ECMAScript 6中引入的。 它是在ECMAScript 5中引入的。
它也被称为.prototype 它也被称为dunder proto。
它在JavaScript中被广泛使用。 它在JavaScript中很少使用。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程