Javascript的caller到底是什么时候定义的呢?
网上很多文章都转载了一段话:对于函数来说,caller 属性只有在函数执行时才有定义。
到底是不是呢?可以用下面这段代码测试一下(这段例子也是转载文章中使用的):
function callerDemo() {
if (callerDemo.caller) {
var a= callerDemo.caller.toString();
alert(a);
} else {
alert(callerDemo.caller);
}
}
function handleCaller() {
callerDemo();
}
alert("callerDemo.caller:"+callerDemo.caller); //null
alert("callerDemo.callee:"+callerDemo.callee); //undefined
alert("callerDemo.undefinedProperties:"+callerDemo.undefinedProperties); //undefined
可以看出任何未定义的属性打印出来的值都是undefined
而caller属性打印出来的却是null,说明caller属性在执行前就已经存在,只不过为null而已
相关文档:
1、javascript具有下列种类的运算符:算术运算符;等同运算符与全同运算符;比较运算符;
2、目的分类:字符串运算符;逻辑运算符;逐位运算符;赋值运算符;
3、特殊运算符:条件运算符;typeof运算符;创建对象运算符new;delete运算符;void运算符号;逗号运算符;
算术运算符: ......
很多人都不愿意写javascript代码,我觉得主要原因在于javascript代码比较零碎,涉及的知识面比较广,要写好javascript代码,就不得不了解html,css等,所以要学好javascript并不是一件容易的事。如果要是有比较好的开发工具的话,相信大家学起来会简单一些。下面给大家介绍一些学习javascript的工具:
1、如何快速看 ......
1. 总是使用 ‘var’
在JavaScript
中,变量不是全局范围的就是函数范围的,使用”var”关键词将是保持变量简洁明了的关键。当声明一个或者是全局或者是函数级(function-level)的变量,需总是前置”var”关键词,下面的例子将强调不这样做潜在的问题。
不使用 Var 造成的问题
var i=0; ......
Javascript 本身并不直接支持继承,不过javascript强大之处就在于其无比的灵活性,你基本可以为所欲为。
1. 通过在子类中调用父类的构建函数来实现继承。
2. 用Prototype来实现继承。
3. 常见framework是如何实现继承的。
4. 总结 ......
javascript小技巧
事件源对象
event.srcElement.tagName
event.srcElement.type
捕获释放
event.srcElement.setCapture();
event.srcElement.releaseCapture();
事件按键
event.keyCode
event.shiftKey
event.altKey
event.ctrlKey
事件返回值
event.returnValue
鼠标位置
event ......