首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

js原型的语法

JavaScript 原型(Prototype)是 JavaScript 中实现对象继承的一种机制。每个 JavaScript 对象都有一个指向其原型对象的内部链接。这个原型对象又有自己的原型,如此层层向上,直到达到 Object 构造函数的原型对象,这个原型对象的值是 null,形成了一个原型链。

语法

  1. 创建原型

可以通过构造函数的 prototype 属性来设置或获取对象的原型。

代码语言:txt
复制
function Person(name) {
    this.name = name;
}

Person.prototype.sayHello = function() {
    console.log('Hello, my name is ' + this.name);
};
  1. 访问原型

可以通过对象的 __proto__ 属性(非标准,但广泛支持)或 Object.getPrototypeOf() 方法来访问一个对象的原型。

代码语言:txt
复制
var p = new Person('Alice');
console.log(p.__proto__ === Person.prototype); // true
console.log(Object.getPrototypeOf(p) === Person.prototype); // true
  1. 原型链

当访问一个对象的属性时,JavaScript 引擎首先会在对象本身查找这个属性。如果找不到,它会沿着 __proto__ 链向上查找,直到找到该属性或达到原型链的顶端(null)。

代码语言:txt
复制
console.log(p.name); // Alice,直接在 p 对象上找到
console.log(p.sayHello); // [Function: sayHello],在 p 的原型上找到
console.log(p.toString()); // [Function: toString],在原型链上更上层找到

优势

  • 实现继承:通过原型链,可以实现对象之间的继承关系。
  • 共享属性和方法:所有实例共享原型上的属性和方法,节省内存。

类型

  • 构造函数原型:通过构造函数的 prototype 属性设置。
  • 对象字面量原型:通过 Object.create() 方法创建的对象可以指定其原型。

应用场景

  • 创建多个具有相同属性和方法的对象:通过构造函数和原型实现。
  • 实现继承:通过设置子类的原型为父类的实例来实现继承。

常见问题及解决方法

  1. 原型链断裂:当修改一个对象的原型时,可能会导致原型链断裂。解决方法是谨慎修改原型,或使用 Object.setPrototypeOf() 方法。
  2. 性能问题:过长的原型链可能导致性能下降。解决方法是保持原型链简短,避免不必要的继承层次。
  3. 属性遮蔽:当在对象本身定义一个与原型上同名的属性时,会遮蔽原型上的属性。这是预期的行为,但需要注意不要意外覆盖重要属性。

了解 JavaScript 原型对于掌握这门语言至关重要,它不仅是实现继承的基础,也是理解对象和函数之间关系的关键。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

28分33秒

16.尚硅谷_JS高级_显式原型与隐式原型.avi

20分43秒

66.尚硅谷_JS基础_原型对象

11分15秒

67.尚硅谷_JS基础_原型对象

44分33秒

17.尚硅谷_JS高级_原型链.avi

10分28秒

18.尚硅谷_JS高级_原型链_补充.avi

29分48秒

38.尚硅谷_JS高级_原型链继承.avi

19分14秒

21.尚硅谷_JS高级_原型_面试题.avi

11分51秒

19.尚硅谷_JS高级_原型链_属性问题.avi

9分37秒

04.尚硅谷_JS基础_基本语法

14分44秒

86.尚硅谷_JS基础_正则语法

12分25秒

12-尚硅谷-Javascript-js语法快速学习

5分59秒

EGov教程_001_根据原型简述要实现的功能

领券