[何时在向javascript中的对象添加新属性时使用“原型”一词?

问题描述 投票:11回答:6

我不明白JavaScript在什么时候使用单词“ prototype”与使用简单的“ dot”符号而不使用单词“ prototype”。有人可以看看这些代码块,并帮助我理解何时要使用另一个代码块吗?

with“原型”:

function employee(name,jobtitle)
{
  this.name=name;
  this.jobtitle=jobtitle;
}

var fred=new employee("Fred Flintstone","Caveman");
employee.prototype.salary=null;
fred.salary=20000;
console.log(fred.salary);

没有“原型”:

function employee(name,jobtitle,salary)
{
  this.name=name;
  this.jobtitle=jobtitle;
  this.salary=salary;
}

var fred=new employee("Fred Flintstone","Caveman", 20000);
console.log(fred.salary);
javascript object prototype
6个回答
8
投票

JavaScript对象具有一个属性,该属性是指向另一个对象的指针。该指针是对象的原型。默认情况下,对象实例共享相同的原型:


7
投票

关于JS和继承的问题可能很复杂,但是您问题的答案相对简单。考虑以下代码:


2
投票

ES5的Object.create几乎消除了再麻烦.prototype的麻烦。


1
投票

prototype对象有点难以理解;但是this article on OOP JavaScript可以帮助您了解一些信息。


1
投票

忽略new,忽略.prototype,它们只是令人困惑的概念。如果您确实想要原型继承,请使用Object.create,但大多数情况下,继承完全是多余的。 (原型继承只能用作优化技术)。


0
投票

使用原型,您可以以“更干净”的方式扩展,因为您将构造函数中的逻辑与定义对象的属性和方法分开。

© www.soinside.com 2019 - 2024. All rights reserved.