账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    即然__proto__和prototype指向的都是原型对象,为什么要单独给函数弄一个prototype出来呢?
    24
    0

    看了多篇博文,好像__proto__和prototype指向的都是原型对象,那为什么要给函数单独一个设置一个prototype属性呢,直接让函数也用__proto__不行吗?

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 在JavaScript中,.prototype__proto__都指向原型对象。但是,它们的使用场景和目的有所不同。

      .prototype是一个特殊的属性,它指向的是类的原型对象。当你创建一个新的类时,JavaScript会自动为该类添加一个名为.prototype的属性。这个属性是一个对象,包含了类的所有原型对象的所有属性和方法。

      例如,假设我们有以下的代码:

      ```javascript class Person { constructor(name) { this.name = name; } }

      let person = new Person('John'); ```

      在这个例子中,Person类有一个名为name的属性,它是由Person类的constructor方法创建的。因此,this.name会指向Person类的实例,也就是person对象。

      相比之下,__proto__属性只有在函数被创建时才被设置。当一个函数被调用时,__proto__属性并没有被设置,因此它仍然指向函数自身的原型对象。

      例如,假设我们有以下的代码:

      ```javascript function Person(name) { this.name = name; }

      let person = new Person('John'); ```

      在这个例子中,我们没有使用__proto__属性,因此this.name仍然指向Person类的实例。

      总的来说,.prototype是类的原型对象,而__proto__是函数的原型对象。它们都是指向原型对象的属性,但是使用场景和目的有所不同。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部