原型调用

作者: 泪滴在琴上 | 来源:发表于2022-04-11 10:51 被阅读0次
function Foo() {
  Foo.a = function () {
    console.log(1);
  };
  this.a = function () {
    console.log(2);
  };
}

Foo.prototype.a = function () {
  console.log(4);
};

Function.prototype.a = function () {
  console.log(3);
};


Foo.a();

let obj = new Foo();
obj.a();
Foo.a();

执行结果:

  • 执行Foo.a()Foo本身目前并没有a这个值,就会通过 __proto__ 进行查找,但是 [图片上传失败...(image-d42231-1648696341038)]

    , 所以输出是 3

  • new 实例化了 Foo 生成对象 obj,然后调用 obj.a(),但是在Foo函数内部给这个obj对象附上了a函数。 所以结果是2。 如果在内部没有给这个对象赋值a的话,就会去到原型链查找a函数,就会打印4.

  • 执行Foo.a(), 在上一步中Foo函数执行,内部给Foo本身赋值函数a,所以这次就打印1

作者:Ali2333
链接:https://juejin.cn/post/7079681931662589960
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

相关文章

  • 原型调用

    执行结果: 执行Foo.a(),Foo本身目前并没有a这个值,就会通过 __proto__ 进行查找,但是 [图片...

  • JavaScript 原型与原型链

    原型链:通过原型链实现的,子类调用父类的方法时会一直沿着原型链往上找到父类的原型对象并调用相应的方法从而实现继承;...

  • ES5 继承实现

    ES5中继承主要3种方式: 1、对象冒充缺点:无法调用原型链方法 2、原型链缺点:无法调用父类构造方法 3、对象+...

  • js原型链的理解

    原型链,原型对象,这个原型到底如何理解?我们通过几个问题慢慢展开 【问题1】声明一个函数Person,函数调用前面...

  • JS原型链

    javaScript原型链 JavaScript所有对象都有原型,当对象有属性或方法调用的时候,对象就会从自身查找...

  • 链式调用 underscore

    思路:链式调用是返回_()构造的原型对象,将新增的方法,绑定在生成的原型对象上(mixin)。

  • Vue源码深入生命周期

    当我们调用new Vue的时候,事实上就调用的Vue原型上的_init方法. this._init()方法中调用i...

  • C++函数初识

    Tags:C++,《C++ Primer Plus》笔记 一、原型、定义与调用## 一个完整的函数包含原型、定义和...

  • KDJ

    外汇中 KDJ 比较特殊,Stochastic 就是KDJ。 调用函数为 调用原型[可复制到脚本直接运行]

  • 函数中this指向问题以及this四大绑定原则

    一、 普通调用方式 => window 构造函数调用=> 实例对象,原型对象里面的方法也指向实例对象 对象方法...

网友评论

    本文标题:原型调用

    本文链接:https://www.haomeiwen.com/subject/hgogjrtx.html