javascript - 为什么js这样调用是错误的呢
ringa_lee
ringa_lee 2017-04-11 10:57:15
[JavaScript讨论组]

但是var m = new f(); m.print();原理是什么呢

ringa_lee
ringa_lee

ringa_lee

全部回复(2)
PHPz

你那个报错坑爹啊,

不是f.print is not a function?
f.prototype.print=function(){..}//是给f的prototype属性添加了一个print方法,而不是给f添加了一个方法,这点你要搞清楚
天蓬老师

你有一个误区,我知道你的想法,你是想在它的原型上定义一个方法,然后再f.print() 去执行,你原本以为它会去原型中查找这个方法,可是它报错了,因为,你是在Function 类型上prototype 也就是说你定义的是函数的prototype,然后你通过f.去找他的方法,怎么可能找到呢?

两  点

第一 , 只有object类型才能通过 "." 操作符去查找其属性及方法,未实例的构造函数不可以,这点在ES6中的 static 静态类可以实现,你可以去找一下资料.
第二 , 把f函数实例化 var s = new F(); s.print();

另外需要注意:构造函数统一首字母大写哦!

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

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