1.关于prototype:这里prototype是javascript的一个特性,不是那个有名的prototype框架:
<script type="text/javascript">
var string="hello world";
try{
alert(string.phone());
}catch(e){alert(e);}
String.prototype.phone=function()
{
return "159-10957151";
}
alert(string.phone());
</script>
2.关于变量作用域,和IE,firefox对js的不同处理,这里有几个例子,有几个是原来从别处看到的记的笔记,有的是我自己挖掘出来的.
2.1
<script type="text/javascript">
var deep_thought = {
the_answer: 42,
ask_question: function () {
return this.the_answer;
}
};
var the_meaning = deep_thought.ask_question();
alert(the_meaning);
</script>
2.2
<script type="text/javascript">
function test_this() {
return this;
}
var i_wonder_what_this_is = test_this();
alert(i_wonder_what_this_is);
// result: [object window];
</script>
2.3:
<script type="text/javascript">
function click_handler() {
alert(this); // 弹出 window 对象
}
</script>
...
<button >Click me!</button>
2.4
<script type="text/javascript">
function click_handler(obj) {
alert(obj);
//result:[object HTMLButtonElement]
}
</script>
...
<button >Click me!</button>
2.5
<button );
the_button.onclick = deep_thought.ask_question;
}
window.onload = addhandler;
//result [undefined]
</script>
...
2.6
<button );
the_button.onclick = deep_thought.ask_question;
}
window.onload = addhandler;
//result [42]
</script>
...
2.7
<button );
the_button.onclick = btn_click;
}
window.onload = addhandler;
//result [undefined]
</script>
...
2.8
<button );
the_button.onclick = btn_click;
}
window.onload = addhandler;
//result [undefined]
</script>
...
2.9
<button );
the_button.onclick = btn_click;
}
window.onload = addhandler;
//result [undefined]
</script>
...
2.10
<script>
//** variables need to be defined
alert(document); // [object HTMLdocument]
alert(window.document); // [object HTMLdocument]
alert(window.face); //pretty
var face="pretty";
alert(face); //pretty
alert(window.face); //pretty
alert(window.sock); //undefined
alert(sock); // ERROR: sock not defined
</script>
2.11
<script type="text/javascript">
function method()
{
var window={};
alert(window.location);
}
alert(window.location);
method();
alert(window.location);
</script>
2.12
<script type="text/javascript">
var window={};//ERROR:非法赋值!
// this works in IE,but throw an Exception in firefox
alert(window.location);
</script>
2.13
<script type="text/javascript">
/** 这是一段很让人恼火的代码
可以禁用alert
*/
window.alert("hello world");
window.alert=function(str){
document.write(str);
};
alert("hello world");
window.alert("hello world");
</script>
2.14:
注意这三个html文件的结果有什么不同.
a.html:
<script type="text/javascript">
alert(sock);
function sock()
{
alert("function sock executed!");
}
alert(sock);
</script>
b.html:
<script type="text/javascript">
alert(sock);
var sock=function()
{
alert("function sock executed!");
}
alert(sock);
</script>
c.html:
<script type="text/javascript">
// 这里并不弹出"undefined"
// 有点偏心啊!
alert(sock);
</script>
2.15
看看IE,firefox下分别运行有何不同:
<script type="text/javascript">
Object.prototype.hello=function(){
alert("hello");
}
window.hello();
</script>