原型定义的变量的问题
想问大家一个问题,为什么看到别人写的类,属性都挂在this上?不可以放在方法里吗?比如
function GetMusic($content) {
this.content = $content;
this.title = this.content.find(".title");
}
GetMusic.prototype.changTitle = function() {
this.title.toggleClass("on");
}
}
为什么不这样写
function GetMusic($content) {
this.content = $content;
}
GetMusic.prototype.changTitle = function() {
var title = this.content.find(".title");
title.toggleClass("on");
}
}
就是为什么有时候这个变量只用一次也挂在实例上,就是用this挂起来。那么其实:
第一种:
function GetMusic($content) {
this.content = $content;
this.title = this.content.find(".title");
}
第二种
function GetMusic($content) {
this.content = $content;
}
GetMusic.prototype.changTitle = function() {
this.title = this.content.find(".title");
}
}
第三种
function GetMusic($content) {
this.content = $content;
}
GetMusic.prototype.changTitle = function() {
var title = this.content.find(".title");
}
}
上面的三个title变量有什么不一样?对性能什么的有什么印象?一般什么情况下用哪种?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
LZ你要干嘛?
对于以下:
问题:
为什么我每次调用
changTitle
的时候你都给我执行this.content.find
函数、而且每次结果都是title
,不累吗?对于以下:
问题:
如果我现在有个其他函数,叫什么
changTitleColor
:上面又重复了
this.content.find(".title")
这个方法,不累吗?其实,这里要考虑的不是性能,而是封装,也即是到底这个
this.title
是不是和GetMusic
强相关;如果是的话,那就把title给容纳进来、作为GetMusic内部一部分;如果this.title
和GetMusic
相关性很小,那也就没必要保存this.title
这个属性;也就是分清楚哪里是内部、哪里是外部。