分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 代码编程

深入理解JS this,作用域

发布时间:2023-09-06 01:25责任编辑:蔡小小关键词:作用域

深入理解JS this

阮一峰博客链接http://www.ruanyifeng.com/blog/2010/04/using_this_keyword_in_javascript.html

this是Javascript语言的一个关键字。

它代表函数运行时,自动生成的一个内部对象,只能在函数内部使用。比如,

 ???  function test(){ ???    this.x = 1; ???  }

阮老师说this  指的是调用函数的那个对象

情况二:作为对象方法的调用

函数还可以作为某个对象的方法调用,这时this就指这个上级对象

var x = 1;
function test(){
// this.x = 2;
alert(this.x);
}
var o={};
o.x = 3;
o.m = test;
o.m()

情况三 作为构造函数调用

所谓构造函数,就是通过这个函数生成一个新对象(object)。这时,this就指这个新对象。

什么是构造函数?

为了解决从原型对象生成实例的问题,Javascript提供了一个构造函数(Constructor)模式。

所谓"构造函数",其实就是一个普通函数,但是内部使用了this变量。对构造函数使用new运算符,就能生成实例,并且this变量会绑定在实例对象上。

 function Cat(name,color){    this.name=name;    this.color=color;  } 

比如,猫的原型对象现在可以这样写,

 var cat1 = new Cat("大毛","黄色");  var cat2 = new Cat("二毛","黑色");  alert(cat1.name); // 大毛  alert(cat1.color); // 黄色

几道题

 ??name = ‘seven‘; ??function test(){ ??????this.name = ‘alex‘; ??????this.func = function(){ ??????????alert(this.name) ??????} ??} ???var obj = new test(); ???obj.func() ?//alex
 ??name = ‘seven‘; ??function test(){ ??????this.name = ‘alex‘; ??????this.func = function(){ ???????????(function(){ ???????????????alert(this.name) ???????????})() ??????} ??} ???var obj = new test(); ???obj.func() // seven

深入理解JS this,作用域

原文地址:http://www.cnblogs.com/yuyang26/p/7845906.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved