this

1.this初识

1构造函数
//    情况一
//    function Person(name,age){
//        this.name =name;
//        this.age=age;
//        console.log(this)
//    }
//    var one = new Person("zhangsan",26);//实例化出对象 Person{name:"zhangsan",age:26}

//    情况二
//function Person(name,age){
//    this.name =name;
//    this.age=age;
//    console.log(this)
//}
//    Person()//this指向window
2.函数作为对象的一个属性
A)如果函数作为对象的一个属性时,并且作为对象的一个属性被调用时,函数中的this指向该对象。
eg:
var student={
    name:"lisi",
    age:12,
    say:function(){
        console.log(this.name)
    }
}
    student.say()//lisi、
B)fn函数被赋值到了另一个变量中
eg:
var student={
    name:"lisi",
    age:12,
    say:function(){
        console.log(this.name)
    }
}
var name="zhangsan";
var aa = student.say;
    aa();//zhangsan
3.函数不是作为对象的一个属性
eg:
        var obj ={
        x :10,
        fn:function(){
            function func(){
                console.log(this);//window
                console.log(this.x)//undefined
            }
            func();
        }
    }
    obj.fn();
4.使用call、aplly改变this指向
eg:
    var student={
        name:"lisi",
        age:12,
        x:50,
    }
    var x=10;
    var fn = function(){
        console.log(this)//student
        console.log(this.x)//50
    }
    fn.call(student);

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 微信小程序实现下拉刷新怎么实现数据的追加

    在微信小程序中提供了下拉刷新的api(onPullDownRefresh()),那么实现下拉刷新的业务就是再下拉的时候,在原有的数据中追加新的数据

    天天_哥
  • 面向对象编程(随机点名)

    天天_哥
  • 面向对象编程的思想

    天天_哥
  • javascript基础练习:借用原型对象实现继承 & 排他思想 & 页面带参数自动跳转

    定义两个构造函数Student和Person,利用原型对象模拟上面类的继承关系。就是用对象模拟类,然后用call方法在函数内调用父类的方法即可。 注意call...

    Enterprise_
  • 每天一个小技巧:Javascript中定义私有属性(Private Properties) IIFE 实现构造函数实现Class实现原生实现

    和很多高级语言不同,JavaScript 中没有 public、private、protected 这些访问修饰符(access modifiers),而且长期...

    MudOnTire
  • JavaScript深入学习this、call、apply和bind

    this的指向问题一直是面试里的常客。也是es5的众坑之一。对于es6而讲,它极大地避免了this带来的错误。但是为了为了维护一些老代码,还是有必要了解this...

    Javanx
  • 你要的对象都在这啦|how to create Object in JavaScript?

    小伙伴们,大家好,今天我们来说一下Javascript中创建对象的几种方式,请看文章。

    石璞东
  • TypeScript手记(四)

    对于传统的 JavaScript 程序我们会使用函数和基于原型的继承来创建可重用的组件,但对于熟悉使用面向对象方式的程序员使用这些语法就有些棘手,因为他们用的是...

    用户7572539
  • AS3资源加载器

    最近鼓捣除了一个加载器。可以分布式地加载文本文件以及SWF文件。本人将它写成了一个Flex库。本着共同进步的目的,我将其分享出来。

    py3study
  • 操作系统 页式存储 页与块之间的关系详解

    操作系统 页式存储 页与块之间的关系详解 操作系统 页式存储 页 块 逻辑地址 物理地址 块号 页号 以下这些概念在刚开始学的时候简直要逼疯我了,因为不同书籍不...

    marsggbo

扫码关注云+社区

领取腾讯云代金券