javascript this
2024-08-27 19:52:46
最近看了很多人的微博,主要是“追梦子”的微博,总结了一下。希望大家多多指点。
1. 没有new this的指向问题
this的指向在函数创建的时候是决定不了的,在调用的时候才能决定,谁调用的就指向谁
因为this只会指向它的上一级对象
例一:
function a(){ var o = {
user:"追梦子",
fn:function(){
console.log(this.user); //追梦子
console.log(this); // Object{...}
}
}
o.fn(); // ===window.o.fn()
特殊情况: var o = { |
2. new 构造方法
function Fn(){ 用了new关键字就是创建一个对象实例,我们这里用变量a创建了一个Fn的实例(相当于复制了一份Fn到对象a里面), 此时仅仅只是创建,并没有执行,而调用这个函数Fn的是对象a,那么this指向的自然是对象a
|
this 与return 如果返回值是一个对象,那么this指向的就是那个返回的对象,如果返回值不是一个对象那么this还是指向函数的实例
function fn() |
function fn() |
function fn() |
function fn() |
在浏览器中setTimeout、setInterval和匿名函数执行时的当前对象是全局对象window
apply用于改变函数执行时的当前对象,当无参数时,当前对象为window,有参数时当前对象为该参数
var name = "window"; var someone = {
name: "Bob",
showName: function(){
alert(this.name);
}
}; var other = {
name: "Tom"
}; someone.showName.apply(); //window
someone.showName.apply(other); //Tom
最新文章
- html5 video
- [转]jQuery: how to get which button was clicked upon form submission?
- JVM内存分析工具MAT使用
- DELETE与TRUNCATE的区别
- 20145225《Java程序设计》 第8周学习总结
- Lighttpd
- Linux runlevel 运行级别
- Linux系统各发行版镜像下载
- 无线WEP入侵注意事项
- POJ 2531 Network Saboteur
- QTP10破解
- openStack 云平台管理节点管理网口流量非常大 出现丢包严重 终端总是时常中断问题调试及当前测试较有效方案
- InjectAPC全部项目(Win32和Win64位)
- phpcms v9文章页调用点击量方法
- 利用VNC远程登录Linux服务器简易版
- jQuery之jquery.lazyload.js插件用法
- EBS 外部信用风险检查
- 单链表反转(Singly Linked Lists in Java)
- [Reinforcement Learning] 动态规划(Planning)
- centos 7 上zabbix 3.0 服务端安装