js 面向对象中的函数相互之间如何调用 10
<script>varF=function(){}F.prototype={hasClass:function(obj,cls){returnobj.className....
<script>
var F = function(){}
F.prototype = {
hasClass : function(obj, cls) {
return obj.className.match(new RegExp('(\\s|^)' + cls + '(\\s|$)'));
},
removeClass : function(obj, cls) {
if (this.hasClass(obj, cls)) {
var reg = new RegExp('(\\s|^)' + cls + '(\\s|$)');
obj.className = obj.className.replace(reg, '');
}
},
getName : function(obj,attr){
console.log(this.getStyle(obj,attr));
}
}
var dom = document.getElementsByTagName("div")[0];
var f = new F;
f.removeClass(dom, "width"); 展开
var F = function(){}
F.prototype = {
hasClass : function(obj, cls) {
return obj.className.match(new RegExp('(\\s|^)' + cls + '(\\s|$)'));
},
removeClass : function(obj, cls) {
if (this.hasClass(obj, cls)) {
var reg = new RegExp('(\\s|^)' + cls + '(\\s|$)');
obj.className = obj.className.replace(reg, '');
}
},
getName : function(obj,attr){
console.log(this.getStyle(obj,attr));
}
}
var dom = document.getElementsByTagName("div")[0];
var f = new F;
f.removeClass(dom, "width"); 展开
1个回答
2017-12-12 · 百度知道合伙人官方认证企业
育知同创教育
1【专注:Python+人工智能|Java大数据|HTML5培训】 2【免费提供名师直播课堂、公开课及视频教程】 3【地址:北京市昌平区三旗百汇物美大卖场2层,微信公众号:yuzhitc】
向TA提问
关注
展开全部
用Function.prototype.bind即可
比如this.ele.addEventListener('touchstart', this.selectmouse.bind(this));
定义在Dumplings.prototype里的函数如果作为Dumplings实例的方法调用,其this指针会指向Dumpling实例。
但作为参数传递给其他函数(比如addEventListener)时其this指针会被重置,由addEventListener控制。
你需要在prototype里的函数里调用其它同级的函数,this就应当指向Dumplings实例,用this.ele来绑定事件和访问事件的对象,这样才能通过this来访问其他同级对象。为防止addEventListener改变this的指向,需要用bind固定下来。
比如this.ele.addEventListener('touchstart', this.selectmouse.bind(this));
定义在Dumplings.prototype里的函数如果作为Dumplings实例的方法调用,其this指针会指向Dumpling实例。
但作为参数传递给其他函数(比如addEventListener)时其this指针会被重置,由addEventListener控制。
你需要在prototype里的函数里调用其它同级的函数,this就应当指向Dumplings实例,用this.ele来绑定事件和访问事件的对象,这样才能通过this来访问其他同级对象。为防止addEventListener改变this的指向,需要用bind固定下来。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |