码迷,mamicode.com
首页 > 其他好文 > 详细

关于this

时间:2017-09-26 23:35:30      阅读:165      评论:0      收藏:0      [点我收藏+]

标签:返回   关于   meta   set   对象   ons   rip   new   它的   

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>关于this</title>
</head>
<body>
<div id="box"></div>
<script>
//this的指向在函数定义的时候是确定不了的,只有函数执行的时候才能确定this到底指向谁,实际上this最终指向的是那个调用他它的对象(这句话有点误差,但是绝大多数情况下符合)
// 情况一:如果一个函数中有this,但是它没有被上一级的对象所调用,那么this指向的就是window,(严格模式中的this指向的不是window)
// 情况二:如果一个函数中有this,这个函数有被上一级的对象所调用,那么this指向的就是上一级的对象.
// 情况三:如果一个函数中有this,这个函数中包含多个对象,尽管这个函数是被最外层的对象所调用,this指向的也只是它上一届的对象.
//当this遇到return,如果返回值是一个对象(null除外),那么this指向的就是那个返回的对象,如果返回值不是一个对象,那么this指向函数的实例。
//实例一:
function fn1() {
this.user = "aaa";
return {};
}
var a = new fn1
console.log(a.user) //undefined
//实例二:
function fn2() {
this.user = "aaa";
return function () {
};
}
var b = new fn2
console.log(b.user) //undefined
//实例三:
function fn3() {
this.user = "aaa";
return 1;
}
var c = new fn3
console.log(c.user) //aaa
//实例四:
function fn4() {
this.user = "aaa";
return undefined;
}
var d = new fn4
console.log(d.user) //aaa
//实例五:
var f = {
user:"bbb",
age:2
}
function fn5() {
this.user = "aaa";
return f;
}
var e = new fn5
console.log(e.user) //bbb

var o = {
a:10,
b:{
a:12,
fn:function () {
console.log(this.a)
}
}
}
o.b.fn() //12
</script>
</body>
</html>

关于this

标签:返回   关于   meta   set   对象   ons   rip   new   它的   

原文地址:http://www.cnblogs.com/kaw19950302/p/7599350.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!