javascript中的原型
JavaScript是一种基于原型的编程语言,它的核心特点就是原型继承。了解原型是理解JavaScript的关键,下面我们来详细了解JavaScript中的原型。
JavaScript中的每个对象都有一个原型对象,原型对象是一个对象,其它对象可以通过它来获取属性和方法。我们可以使用对象字面量或者构造函数来创建一个对象,这个对象将会自动创建一个原型。
// 对象字面量创建var person = {
name: 'Tom'}
;
// 构造函数创建function Person() {
}
var person1 = new Person();
当我们访问一个对象的属性或方法时,JavaScript引擎会首先查找对象自身是否存在这个属性或方法,如果不存在,就会去原型对象中找,如果还是找不到,就会去原型对象的原型对象中找,依次类推。
console.log(person1.name);
// undefinedPerson.prototype.name = 'Lucy';
console.log(person1.name);
// Lucy上面的例子中,我们首先创建一个空的构造函数Person,然后使用它来创建一个对象person1。因为我们没有为person1设置任何属性,所以访问person1的name属性得到的是undefined。
我们为构造函数Person的原型对象设置了一个name属性,通过person1就可以访问到它。这是因为当我们访问person1的name属性时,JavaScript引擎先在person1中查找该属性,找不到,就去Person.prototype中查找。
原型对象的值也可以是对象,这个对象的原型对象同样可以被访问到。这样,我们就可以实现链式调用。例如,我们可以为Person.prototype设置一个address属性,它是一个对象,该对象包含city和street属性。
Person.prototype.address = {
city: 'Shanghai',street: 'Nanjing Road'}
;
console.log(person1.address.city);
// Shanghai上面的例子中,我们为Person.prototype设置了address属性,其值为一个对象,它包含city和street属性。当我们访问person1的address属性时,就可以得到这个对象,并访问到它的city属性。
JavaScript中的原型继承是通过把一个对象赋值给另一个对象的原型对象来完成的。我们可以使用Object.create()方法来创建一个具有指定原型的对象。
var person2 = Object.create(person1);
console.log(person2.name);
// Lucyconsole.log(person2.address.city);
// Shanghai上面的例子中,我们使用Object.create()方法创建了一个新对象person2,并指定它的原型对象为person1。现在,person2就可以继承person1的所有属性和方法,包括name和address属性。
总结一下:JavaScript中的所有对象都有一个原型对象,在访问对象的属性和方法时,会先在自身查找,如果找不到,就会去原型对象中查找,如果还是找不到,就会一直往上查找,直到找到为止。
这种原型继承可以帮助我们避免重复定义和修改代码,使得代码更加灵活,具有更好的可维护性和扩展性。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: javascript中的原型
本文地址: https://pptw.com/jishu/548982.html
