92 lines
2.3 KiB
HTML
92 lines
2.3 KiB
HTML
|
<!DOCTYPE html>
|
|||
|
<html lang="en">
|
|||
|
|
|||
|
<head>
|
|||
|
<meta charset="UTF-8">
|
|||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|||
|
<title>Document</title>
|
|||
|
<script>
|
|||
|
var a = 2
|
|||
|
// var obj1 = {
|
|||
|
// a: 1,
|
|||
|
// fn1: (function (a) {
|
|||
|
// this.a = a
|
|||
|
// a++
|
|||
|
// return function () {
|
|||
|
// this.a = a++
|
|||
|
// console.log(this)
|
|||
|
// console.log(a)
|
|||
|
// }
|
|||
|
|
|||
|
// })(a)
|
|||
|
|
|||
|
// }
|
|||
|
// var fn1 = obj1.fn1
|
|||
|
// var fn1=function () {
|
|||
|
// this.a = a++
|
|||
|
// console.log(this)
|
|||
|
// console.log(a)
|
|||
|
// }
|
|||
|
|
|||
|
// console.log(fn1.toString())
|
|||
|
// fn1()
|
|||
|
|
|||
|
// console.log(getA)
|
|||
|
// if ('a' in window) {
|
|||
|
// var a = ''
|
|||
|
// function getA(a) {
|
|||
|
// a = a || this.a
|
|||
|
// console.log(this.a)
|
|||
|
// }
|
|||
|
// getA(a)
|
|||
|
// }
|
|||
|
|
|||
|
|
|||
|
|
|||
|
var c = 3
|
|||
|
function getC() {
|
|||
|
this.c++
|
|||
|
console.log(this,'kkkk')
|
|||
|
return function () {
|
|||
|
c = this.c * 2
|
|||
|
console.log(c)
|
|||
|
}
|
|||
|
}
|
|||
|
var obj3 = {
|
|||
|
c: 2,
|
|||
|
getC: (function () {
|
|||
|
this.c -= 1 //win.c-1 win.c=2
|
|||
|
console.log(this.c, this,'sss')
|
|||
|
return this.getC //obj3.getc=win.getc
|
|||
|
})()
|
|||
|
|
|||
|
}
|
|||
|
// var a=obj3.getC()
|
|||
|
// a()
|
|||
|
// obj3.getC()()
|
|||
|
|
|||
|
getC() //win.c++ =>win.c=3
|
|||
|
|
|||
|
console.log(obj3.getC.toString(),"aaaaaaa")
|
|||
|
obj3.getC()
|
|||
|
// console.log(obj3.c,window.c)
|
|||
|
var f3=obj3.getC;
|
|||
|
f3()
|
|||
|
// console.log(window.c)
|
|||
|
// console.log(obj3.c)
|
|||
|
|
|||
|
//step1 立即执行函数 => this 指向window win.c-1 -> win.c=2
|
|||
|
//step2 getC() this.c -=> win.c++ =>2+1 =>3
|
|||
|
//step3 obj3.getC() step1中 obj3.getc= win.getc 所以就是执行win.getc
|
|||
|
// 即 winc++ win.c=3
|
|||
|
//obj3.getc时 this指向的是obj3,this.c操作的是obj3.c , 所以obj3.c 也+1等于3
|
|||
|
//step4 f3本身等于win.getc函数, 执行f3() 即执行 win.getc() =>win.c++ win.c=4
|
|||
|
|
|||
|
</script>
|
|||
|
</head>
|
|||
|
|
|||
|
<body>
|
|||
|
|
|||
|
</body>
|
|||
|
|
|||
|
</html>
|