首页 > 代码库 > javascript中的this
javascript中的this
①javascript函数中的this表示调用该函数的上下文。如下例:
var mm = (function() { var a = function() { console.log(this); // arguments.callee();//相当于arguments对象调用a,指向arguments对象 }; var b = function() { var res = a();//相当于a.call(window),则指向window }; return { a: a, b: b } })() mm.a();//mm对象调用a方法,则a中的指向mm对象。 mm.b();
②javascriprt字面量声明的对象中的this指向对象本身。
var mm = { a: function() { console.log(this); }, b: function() { var res = this.a();//this指向mm对象本身 } } mm.a();//mm对象调用a方法,则a中的指向mm对象。 mm.b();
③javascript构造函数中的this指向由该构造函数创建的实例对象。(注意,不是指向构造函数本身)
function httpObj() {//注意构造函数里面的this指向生成的实例对象而非构造函数本身, //如果在里面使用this.prototype = new XMLHttpRequest();则不对。 //应该在构造函数上进行操作httpObj.prototype = new XMLHttpRequest(); //事实上this实例对象是不存在prototype原型的,其构造函数才具有prototype原型 //this实例拥有其构造函数内定义的私有成员,并且继承其构造函数的原型中的成员 console.log(this.prototype)//undefined 不存在 if(window.XMLHttpRequest) { return new XMLHttpRequest(); //如果构造函数里面return 那么new 构造出的对象就不是this指向的实例对象 // 而是return的值 } else if (window.ActiveXObject) { var versionss = [ ‘MSXML2.XMLHttp.6.0‘, ‘MSXML2.XMLHttp.3.0‘, ‘MSXML2.XMLHttp‘ ]; for(var i = 0; i < versionss.length; i++) { try { return new ActiveXObject(); } catch(e) { } } throw new Error("您的浏览器不支持xhr对象"); } else { throw new Error("您的浏览器不支持xhr对象"); } }
④javascript中事件监听this指向触发事件的dom元素。
document.addEventListener("click", function(e) { console.log(this);//指向触发事件的dom元素 })
javascript中的this
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。