文档章节

JavaScript this 对象的总结

施长成
 施长成
发布于 2015/04/02 13:18
字数 543
阅读 9
收藏 0

this 关键字引用的是包含它的函数作为某个对象的方法被调用时的那个对象——《JavaScript .Dom 高级程序设计》

和变量不同,关键字 this没有作用域的限制,嵌套的函授不会从调用它的函数中继承 this。如果嵌套函数作为方法调用,其this值指向调用他的对象,如果嵌套函数作为函数调用,其this值不是全局对象就是 undefined ——《JavaScript权威指南》

上面是两本比较权威的书,对js的定义。

this 是 js的一个关键字,随着函数的使用 场合不同,this的值也会发生变化的。但是总有一个原则,那就是this只的是调用函数的那个对象

JavaScript有一套完全不同于其他语言的对 this 的处理机制。在五种不同的情况下,this指向各不相同的对象。

  1. 全局范围内

    1. this;//在全局范围内使用 this,this会指向全局对象 window
  2. 函数调用

    1. 形如: foo();//这是 foo函数中的 this对象也会指向全局。 window
  3. 方法调用

    1. 形如: test.foo();//此时foo函数中的 this对象会指向test对象。
  4. 调用构造函数

    1. new foo();//由new创建出的函数,我们称知为构造函数。在函数内容this指向新创建的对象
  5. 显示的是指this

    1. 当使用 Function.prototype 上的call或者apply方法时,函数内部的this会被显式的设置为函数调用的第一个参数

  6. 特殊情况

Foo.method = function(){
    function test(){
        //this 会被设置为全局对象(就是window对象)
    }    
}

    常见的误解是test中的this将会指向Foo对象,实际上他是指向window全局对象

    7. 自己收集的

var shi = {
        init:function(){
            this.button();
        },
        button:function(){
            console.log(this == shi);//true
            console.log(this);//Object
            console.log("shi----button")
        }
    }

        一个json对象中的 this 表示他自身这个对象即上例中的 shi 对象。


© 著作权归作者所有

共有 人打赏支持
施长成
粉丝 5
博文 66
码字总数 24419
作品 0
浦东
后端工程师
私信 提问
JavaScript菜鸽子基础知识总结(一)

学习JavaScript有段时间了,尽管学的不怎么好。但我相信有志者,铁杵磨成针。呵呵呵~~ ①JavaScript能做什么?我所了解的 ⑴在HTML网页中放入动态文本 ⑵响应用户在使用网页时产生的事件 ⑶检...

睡觉谁教谁叫呢
2014/02/18
0
0
JavaScript初学者必看“this”

译者按: JavaScript的和Java等面向对象语言中的大不一样,、和函数更是将的灵活度进一步延伸。 原文: JavaScript: The Keyword ‘This’ for Beginners 译者: Fundebug 为了保证可读性,本文...

Fundebug
2017/05/17
0
0
JavaWeb01-HTML篇笔记(七)

.1 案例三:完成对注册页面的数据的简单校验.1.1.1 需求: 对注册页面的数据进行非空的简单校验!!!如果有某个值没有输入,点击提交,弹出一个对话框进行提示!! 1.1.2 分析:1.1.2.1 技术分...

我是小谷粒
2018/04/28
0
0
js面向对象的一些初级知识总结~~

javascript作为一门解释性脚本语言,有着其独特的魅力.既具有函数编程的特性,又具有面向对象的特征.以前的开发中,大多是使用了javascript的函数式编程,最近,发现其的面向对象也有一定的优势,...

乔康007
2013/02/24
0
0
c#开发之二---前端技术javascript

一、使用方法 可以写在html 的 head 或body标签里。执行顺序是从上到下。 1、直接使用 2、调用外部javascript 3、直接在html中引用 我是js链接 //这里的jav...

kuang_hp
2018/07/04
0
0

没有更多内容

加载失败,请刷新页面

加载更多

操作数据库表

/* DML:数据库操作语言 主要对表中的数据库进行 增删改 ****增:插入一条记录 insert into 表名 (列名1,列名2..) values (值1,值2..) 注意: 1.列名可以在表中选择一列或者几列 2.后面的值 必须...

stars永恒
刚刚
0
0
你真的了解 volatile 关键字吗?

volatile关键字经常在并发编程中使用,其特性是保证可见性以及有序性,但是关于volatile的使用仍然要小心,这需要明白volatile关键字的特性及实现的原理,这也是本篇文章的主要内容。 一、J...

Henrykin
刚刚
0
0
条码插件TBarCode Office系列教程二(Word Add-In篇)

TBarCode Office是一款适用于Microsoft Word 2007、2010和2013的条码插件,通过此插件可以轻松的在您的文档中嵌入代码。此系列教程旨在介绍TBarCode Office的常见问题及解答,帮助大家学习使...

ymy_666666
1分钟前
0
0
折腾Java设计模式之命令模式

博客原文地址 折腾Java设计模式之命令模式 命令模式 wiki上的描述 Encapsulate a request as an object, thereby allowing for the parameterization of clients with different requests, ......

大萌小路
1分钟前
0
0
微服务架构:基于微服务和Docker容器技术的PaaS云平台架构设计

基于微服务架构和Docker容器技术的PaaS云平台建设目标是给我们的开发人员提供一套服务快速开发、部署、运维管理、持续开发持续集成的流程。平台提供基础设施、中间件、数据服务、云服务器等资...

编程SHA
2分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部