Vue中this使用详解

#在函数中使用
##在函数中直接使用
+严格模式和非严格模式this的指向问题
-严格模式下this指向undefined
-非严格模式下this是指向window
function get(){
console.log(this)
}
get()

function get(){
‘use strict’
console.log(this)
}
get()
+函数在被直接调用的时候其中的this指针永远指向window
+匿名函数的this总是指向window对象的
+谁执行函数,this就指向谁
+如果函数new了一下 就会创建一个对象,this是指向新创建的对象的
+谁执行了函数 this就指向谁
-全局的上下文(GO)代码载入浏览器中的时候 全局环境被创建 当我们关闭浏览器的时候 被销毁
-函数的上下文(AO)函数在执行的时候 一定有额外的信息来支撑的 function是对象 就会有方法,function中最最核心的call 方法。
+call 方法的时候、
…js
function say(content) {
console.log(“from”+this +”:hello”+content)
}
say.call(‘bobo”, “lmj”)
say()
…js
1.把第二个到最后一个参数作为函数执行时要传入的参数
2.把函数执行时的this指向的是第一个参数
3.调用函数的语法糖
…js
function say(content){
console.log(content)
}
say(‘hello word’)
//say.call(window,”hello word”)

(function(name){
})(‘bobo’)
(function(name){
}).call(window, ‘bobo’)
…js

##函数作为对象的方法去调用

var person = {
name: ‘bobo’,
run: function(time) {
      console.log(`${this.name} 跑了${time}分钟就不行了`)
}
}
person.run(30)
person.run.call(person, 30)
```js
例子一:
```js
var x = 10
var obj = {
  x:20,
  f:function(){
    console.log(this.x)
    var foo = function()(console.log(this.x)}
    foo()
  }
}
obj.f()
```js
//例题看哔哩哔哩

#不在函数中
```js
//不在函数中使用的时候,this还是指向了window
var a = 100
var obj = {a:1,b:this.a+1}
console.log(obj.b)
```js

#ES6的箭头函数中的this
```js
//箭头函数没有this  默认指向定义他的时候的执行期上下文所在的对象

#函数在当作构造函数的时候 也同样可以用call代替

function person(name){
  var _newObj = {
constructor:person,
_proto_:person.prototype
}
_newObj.constructor(name)
// _newObj.constructor.call(_newObj,name)
return _newObj
})()
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值