JS中this关键字

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

1.全局代码中的this

alert(this);//window

this指向全局对象。

2.作为单纯的函数调用

function fooCoder(x) {
    this.x = x;
}
fooCoder(2);
alert(x);// 全局变量x值为2

this指向全局对象,即window。在严格模式中,则是undefined。

3.作为对象的方法调用

var name = "clever coder";
var person = {
    name : "foocoder",
    hello : function(sth){
        console.log(this.name + " says " + sth);
    }
}
person.hello("hello world");//foocoder says hello world

this指向person对象,即当前对象。

4.作为构造函数

new FooCoder();

this指向新创建的对象。

5.内部函数

var name = "clever coder";
var person = {
    name : "foocoder",
    hello : function(sth){
        var sayhello = function(sth) {
            console.log(this.name + " says " + sth);
        };
        sayhello(sth);
    }
}
person.hello("hello world");//clever coder says hello world

在内部函数中,this没有按预想的绑定到外层函数对象上,而是绑定到了全局对象。

6.使用call和apply设置this

person.hello.call(person, "world");//apply和call类似,只是后面的参数是通过一个数组传入,而不是分开传入

两者都是将某个函数绑定到某个具体对象上使用,自然此时的this会被显式的设置为第一个参数。

时间: 2024-10-11 21:29:15

JS中this关键字的相关文章

JS中的关键字和保留字

JavaScript中不能作为变量名的关键字和保留字总结: 1.js中的关键字: break case catch continue default delete do else finally for function if in instanceof new return switch this throw try typeof var void while with 2.js中的保留字: abstract boolean byte char class const debugger dou

[转]JS 中 this 关键字详解

本文主要解释在JS里面this关键字的指向问题(在浏览器环境下). 首先,必须搞清楚在JS里面,函数的几种调用方式: 普通函数调用 作为方法来调用 作为构造函数来调用 使用apply/call方法来调用 Function.prototype.bind方法 es6箭头函数 但是不管函数是按哪种方法来调用的,请记住一点:谁调用这个函数或方法,this关键字就指向谁. 接下来就分情况来讨论下这些不同的情况: 普通函数调用 function person(){ this.name="xl";

关于js中this关键字的补充

前面: 前面虽然综合了网络上不少大牛的心得,但感觉还是意犹未尽,为了彻底搞清楚js中this的相关知识,决定再写一篇.个人觉得,在技术上,除非钻到细枝末节,否则很难达至非常高的水平. 补充1: 无法重写this,因为它是一个关键字. 补充2: pasting $(function () { $('button').click(function () { alert(this);//this 表示原生的DOM $(this);//表示当前对象,这里指的是button }) }) this,表示当前

JS中this关键字、call、apply方法

首先,必须搞清楚在JS里面,函数的几种调用方式: 普通函数调用 作为方法来调用 作为构造函数来调用 使用apply/call方法来调用 Function.prototype.bind方法 es6箭头函数 谁调用这个函数或方法,this关键字就指向谁. 普通函数调用 function person(){ this.name="xl"; console.log(this); console.log(this.name); } person(); //输出 window xl 在这段代码中p

JS中this关键字详解

this是Javascript语言的一个关键字. 它代表函数运行时,自动生成的一个内部对象,只能在函数内部使用.比如, function test(){ this.x = 1; } 随着函数使用场合的不同,this的值会发生变化.但是有一个总的原则,那就是this指的是,调用函数的那个对象. 下面分四种情况,详细讨论this的用法. 情况一:纯粹的函数调用 这是函数的最通常用法,属于全局性调用,因此this就代表全局对象Global. 请看下面这段代码,它的运行结果是1. function te

js中this关键字用法详解

1.全局环境中的this 在全局环境中,this 指向全局对象Global,即 window 对象 如: alert(this); // 显示 [object Window] alert(this === window); // 显示 true 2.事件处理中的this 在事件处理函数中,this 指向当前节点,即绑定事件的节点. 在DOM元素中直接绑定事件,例如: <input type="button" value="点击这里显示this" onclick

js中this关键字的作用

this中的几种情况 1.普通函数中的this window 2.构造函数中的this 是当前构造函数创建的对象在new这个构造函数的时候会在内存中创建一个对象,此时会让this指向刚创建好的这个对象 3.方法中的this 方法所属的对象,谁调用这个方法this就指向谁 4.事件处理函数中的this 事件源 谁调用的该事件this就指向谁在这里就指向事件源this 原文地址:https://www.cnblogs.com/danruoyanyun/p/11173913.html

js中in关键字的用法

1. 在For...In 声明用于对数组或者对象的属性进行循环/迭代操作. 例子:var a = new Array; for(x in a){ console.log(x); } 2. 判断对象是否为数组/对象的元素/属性: 格式:(变量 in 对象)......注意,,, 当“对象”为数组时,“变量”指的是数组的“索引”: 当“对象”为对象是,“变量”指的是对象的“属性”. PS:特别注意如果对象为数组的时候,前面的变量特指的是索引,不是里面的值

JS中return关键字

①返回控制与函数结果 语法为:return 表达式; 语句结果函数的执行,返回调用函数,而且把表达式的值作为函数结果返回出去 ②返回控制无函数结果 语法为:return; 在大多数情况下,为事件处理函数如果让其返回false,可以防止默认的事件行为. return true;   返回正常的处理结果. return false;  返回错误的处理结果;终止处理;阻止提交表单;阻止执行默认的行为. return;          把控制权返回给页面. 究竟需不需要return来返回值,要看函数是