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

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

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    js原型和继承的问题?
    43
    0
    function Person(name,age){
      this.name = name;
      this.age = age;
    }
     
    Person.prototype.getAge = function(){
      return this.age;
    }
    Person.prototype.getName = function(){
      return this.name;
    }
     
    var p = new Person("Nicholas",18);
    console.log(p.constructor === Person.prototype.constructor)// true 

    因为 p.constructor回去找p.__proto__中的值,而 p.__proto__ 由 Person.prototype而来,所以相等

    function Person(name,age){
      this.name = name;
      this.age = age;
    }
     
    Person.prototype = 1
     
    var p = new Person("Nicholas",18);
    console.log(p.constructor); //ƒ Object() { [native code] }

    为什么不是 Person.prototype.constructor的Number,而是object
    而且 p.constructor === Person.prototype.constructor也返回false

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 醉酒忘段情 普通会员 1楼

      JavaScript中的原型和继承是两个重要的概念,它们在编程中起到了非常重要的作用。

      1. 原型:原型是一个对象,它包含了父对象的所有属性和方法。当你定义一个函数或者一个类,你可以使用Object.create()方法来创建一个新的对象,并将原型传递给这个对象。这个新的对象就继承了父对象的所有属性和方法。

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

      Person.prototype.sayHello = function() { console.log("Hello, my name is " + this.name + " and I am " + this.age + " years old."); }

      var person1 = new Person("Alice", 25); person1.sayHello(); // 输出:Hello, my name is Alice and I am 25 years old.

      var person2 = Object.create(Person); person2.name = "Bob"; person2.age = 30; person2.sayHello(); // 输出:Hello, my name is Bob and I am 30 years old. ```

      1. 继承:继承是指一个类可以从另一个类继承属性和方法。你可以通过使用extends关键字来实现继承。

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

      speak() { console.log("The animal is " + this.name + " speaking."); } }

      class Dog extends Animal { speak() { console.log("Woof!"); } }

      var dog = new Dog("Fido"); dog.speak(); // 输出:Woof! ```

      在以上例子中,Dog类继承了Animal类的所有属性和方法,包括speak()方法。当我们创建一个Dog实例时,它就继承了Dog类的所有属性和方法,而不需要手动创建Animal实例。

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