简述JavaScript原型和原型链有什么特点?,javascript原型和原型链特点
原型和原型链的关系贯穿于JavaScript中的对象,在JavaScript中一切都是对象,所以原型和原型链是比较重要的概念。今天,我们来看看JavaScript中的原型和原型链。
一、了解概念(知道有这两个名词即可)
原型(原型)
原型链(__proto__)
二、了解从属关系
Prototype=函数的一个属性:它也是一个对象{}(可以称为prototype object)。
_ _ proto _ _=Object Object的一个属性:也是object {} (_ _ proto _即[[Prototype]])。注意:对象的_ _ proto _持有其构造函数的原型。
a.声明一个构造函数
函数测试(){ }
//prototype是函数的属性。
console.dir(测试);
控制台. log(test . prototype);
//Test.prototype也是一个对象。
console . log(type of test . prototype);b.声明一个对象
const Test=new Test();
console.log(测试);
//验证测试是一个对象
console.log(测试类型);
//__proto__是对象的属性。
console.log(测试。_ _ proto _ _);
控制台. log(test . prototype);
//对象的__proto__属性存储Test.prototype
console.log(测试。_ _ proto _ _===test . prototype);
//测试。__proto__也是一个对象。
console.log(测试类型。_ _ proto _ _);函数测试(){}
控制台. log(test . prototype);//验证该函数具有prototype属性。
let Test=new Test();
console.dir(测试。_ _ proto _ _);//验证该对象是否具有__proto__属性。
console.log(测试。_ _ proto _ _===test . prototype);//验证对象的__ptoto__保存了对象构造函数的原型。
console . log(test . prototype . _ _ proto _ _===object . prototype);//Test.prototype(它是一个对象)的__proto__属性是否是该对象的prototype属性
console . log(object . prototype . _ _ proto _ _);//原型链的顶级没有__proto__属性null三、深入认识原型链、原型和原型继承
函数测试(){}
let Test=new Test();
test.a=10
//测试。_ _ proto _ _===test . constructor . prototype
测试。_ _ proto _ _ .b1=11//对象的__proto__属性存储对象构造函数的prototype属性。
test . prototype . B2=11;
测试。__proto__。_ _ proto _ _ .c1=12
object . prototype . C2=12;
console.log(测试);
控制台. log(test . prototype);
console . log(object . prototype . _ _ proto _ _);
/*逐层解析
*测试{
* a=10
* __proto__:Test.prototype{
* b=11
* __proto__:Object.prototype{
* c=12
* X__prototype__:null
* }
* }
* }
*
* */四、总结
不建议用__proto__直接访问。
可以简单概括为原型节点和__proto__原型链。
每个实例对象都有一个私有属性(称为__proto__),指向其构造函数的原型对象。这个原型对象也有自己的原型对象(__proto__),一层一层往上,直到一个对象的原型对象为空。根据定义,null没有原型,是这个原型链中的最后一环。
某个物体。[[Prototype]]符号是用来指向SomeObject,someObject的原型。[[prototype]]===_ _ prototype _ _(JavaScript的一个非标准属性,但被很多浏览器实现)。
Object.prototype属性代表Object的原型对象。
构造函数创建的实例对象的[[Prototype]]指向func的Prototype属性。
推荐视频:《JavaScript极速入门_玉女心经系列》,《独孤九贱(6)_jQuery视频教程》及以上是JavaScript中原型和原型链的细节。更多请关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。