web前端:理解js原型链

关注:74 发布时间:2021-10-09 09:00:04

导语本文整理了web前端:理解js原型链经验知识,帮助您全面了解,小白也能成为高手,跟随小编一起来看一看吧!

需要准备的物品

java描述语言

详细介绍方法/步骤

在学习原型链之前,我们先了解一下构造函数,代码如下:

函数s {

this.name=" xxx

this . say=function{ console . log(this . name)}

}

var s1=new s;

s1是s的一个实例,s1在__proto__中有一个构造函数属性(我们不要担心__proto__属性,但我们稍后会谈到它),它指向s.

在这里,你可以记住两点:

1.s1是构造函数s的一个例子;

2.s1。_ _ proto _ _ _。constructor==s也可以写成s1 . constructor===s;

接下来,让我们看看下一个代码:

函数s2 {}

s2 . prototype . name=" xxx ";

s2.prototype.say=function {

console . log(this . name);

}

var s2=新s2;

var s3=新s2;

console . log(s2 . sayname===s3 . sayname);//true

console.log(s2。_ _ proto _ _===s2 . prototype);//true

在这段代码中,我们可以看到一个新的属性——prototype。这是什么?事实上,这是构造函数s2的原型对象。每个对象都有一个__proto__属性,但只有函数对象有一个原型属性。s2是构造函数s2和s2的一个实例。__proto__指向s2的原型物体,即s2。_ _原型_ _==s2。原型。结论是实例的__proto__属性指向其构造函数的原型对象。

继续前面的代码,我们添加代码继续调试:

console.log(s2。_ _ proto _ _);//返回s2的原型对象

console . log(s2 . prototype);//返回s2的原型对象

console.log(s2。_ _ proto _ _ _。_ _ proto _ _);//返回对象对象

console . log(s2 . prototype . _ _ proto _ _);//返回对象对象

console.log(s2。_ _ proto _ _ _。_ _ proto _ _ _。_ _ proto _ _);//返回null

console . log(s2 . prototype . _ _ proto _ _。_ _ proto _ _);//返回null

实际上,在s2的原型对象上有原型对象,因为s2的原型对象只是对象对象的一个实例。

在这里,我画一个图让你了解原型链。

温馨提示

代码不容易。如果小编有什么问题,我希望每个人都能指出来。谢谢你

猜你喜欢

热门it技术经验

360微商频道查询入口