函数内的属性是函数,如何执行它
function animal(){
this.eat = function (){
console.log('i will eat');
}
}
为什么不能用animal.eat()的方法去执行,而是用var一个实例,去执行。不理解其中原理
animal.eat(); //eat不是一个函数
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
1.animal要运行一次才会执行函数体的内容
2.直接调用animal(),this在浏览器中指向window,在node中指向global
3.因此要向执行eat需要这么写:
4.var一个实例的方法是把animal当做构造器函数使用,new的过程中会执行函数体内容,并返回this,可以这么写:
因为你这个this.eat的this 指向的是window,在非严格的模式下面。所以你animal.eat是报错的。你直接运行eat(),就可以了