关于JavaScript原型继承的小小疑惑
天蓬老师
天蓬老师 2017-04-10 17:25:43
[JavaScript讨论组]
//定义一个book对象
var Book = function(title, publisher) {
    this.title = title;
    this.publisher = publisher;
};
//于是在原型对象中增加一个sayTitle()方法,用来显示书名
Book.prototype.sayTitle = function() {
    alert(this.title);
};
//实例化对象
var book1 = new Book("High Performance JavaScript", "Yahoo Press");
//输出"High Performance JavaScript"
book1.sayTitle();

//又定义了一个对象
var people = function(age,name,title){
  this.age = age;
  this.name = name;
  this.title = title;
};
var p = new people(25,"William","Programmer");    //实例化
p.sayTitle();  //报错:Uncaught TypeError: p.sayTitle is not a function

疑惑:book的原型指向的是Object,通过prototype新加的sayTitle()方法应该是加到Object对象上啊,为什么新的people对象不能用sayTitle()方法?

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回复(3)
天蓬老师
console.log(Book.prototype === Object);
console.log(Book.prototype === Object.prototype);

你自己运行看看结果是什么喽。


类的原型和Object到底啥关系?

console.log(Book.prototype instanceof Object);

你再运行这段代码看看结果。

怪我咯

对象得需要继承才能有父的方法,book和people是不同的类,且没有任何继承,怎么会有关联呢?
就好比,人能哺乳,而鸟怎么能哺乳呢?

伊谢尔伦

book的原型指向的是Object

这句话从何而来?

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号