gpt4 book ai didi

javascript - 未定义 javascript 原型(prototype)属性的情况。想知道原因

转载 作者:行者123 更新时间:2023-11-30 05:51:01 25 4
gpt4 key购买 nike

var Person = function(name){
this.name = name;
};
console.log("1 " + typeof(Person.prototype)) //"object" - prototype is a property of a first class functional object

Person.prototype.sayhi = function(){console.log("hi")};

var john = new Person();

console.log("2 "+typeof(Person.sayhi)) // "undefined"
console.log("3 "+typeof(john.sayhi))// "function"

我正在尝试更好地理解 javascript 原型(prototype)。

我想知道为什么案例 2 返回 undefined,而案例 3 返回“object”。

我阅读了其他帖子,但似乎找不到答案。谢谢。

最佳答案

附加到原型(prototype) (Person.prototype) 的函数无法从构造函数 (Person) 访问,即 Person.sayhi 是根本不尝试访问原型(prototype)。

当你调用构造函数时(比如 var p = new Person()),Person.prototype 被附加到创建对象的原型(prototype)链上( p), 这就是你可以调用 p.sayhi() 的原因。但是,sayhi 从未附加到构造函数

关于javascript - 未定义 javascript 原型(prototype)属性的情况。想知道原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14864044/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com