码迷,mamicode.com
首页 > 编程语言 > 详细

javascript备忘笔记

时间:2015-05-19 18:55:12      阅读:129      评论:0      收藏:0      [点我收藏+]

标签:

1.填充VO的顺序是: 函数的形参 -> 函数申明 -> 变量申明。

首先,就是this值是如何定义的,当一个方法在对象上调用的时候,this就指向到了该对象上,例如:

var object = {
method: function() {
alert(this === object); //true
}
}
object.method();
function a() {
alert(this);
}
a.call(null);

了解一下call()是做什么的,call方法作为一个function执行代表该方法可以让另外一个对象作为调用者来调用,call方法的第一个参数是对象调用者,随后的其它参数是要传给调用method的参数(如果声明了的话),例如:

function method() {
alert(this === window);
}
method(); //true
method.call(document); //false

第一个依然是true没什么好说的,第二个传入的调用对象是document,自然不会等于window,所以弹出了false。

另外,根据ECMAScript262规范规定:如果第一个参数传入的对象调用者是null或者undefined的话,call方法将把全局对象(也就是window)作为this的值。所以,不管你什么时候传入null,其this都是全局对象window,所以该题目可以理解成如下代码:

function a() {
alert(this);
}
a.call(window);

所以弹出的结果是[object Window]就很容易理解了。

 

javascript备忘笔记

标签:

原文地址:http://www.cnblogs.com/up9527/p/4515112.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!