javascript prototype
下面都是个人理解以及查找的网上的资料,如有不对的地方请指正
prototype
prototype在这里是原型的意思,不是指那个框架...
每个函数就是一个对象(Function),当函数被解析后会添加一个prototype的对象,然后prototype会添加一个constructor的属性
它指向那个函数的
比如定义一个function test(){}
它会自动添加一个prototype ; 即test.prototype={}
然后 prototype会自动添加一个test.prototype.constructor =test 它是指想函数本身的
可以测试一下 例子如下
function test(){
alert('a');
}
alert(test.prototype); //可以看出是obj
test.prototype.constructor(); //可以看出是执行了test
一个类,如何实例化成一个对象了,类里面的prototype里的属性又是怎么成为实例里面的属性的了
这里不得不说一下new 的过程
大概可以分成3步
这个例子可真好呀 哈哈
<1> var p={}; 也就是说,初始化一个对象p。
<2> p.__proto__=Person.prototype;
<3> Person.call(p);也就是说构造p,也可以称之为初始化p。
别人给的一个new的过程
/*
new操作原理(spiderMonkey引擎下)
*/
var a = function(sA,sH){
var x = "x";
this.a = sA;
this.h = sH;
this.say = function(){alert(this.a+','+x)}
}
a.prototype.hi = function(){alert(this.h)}
var createInstance = function(source){
var p = {}
var args = Array.prototype.slice.call(arguments,1);
source.apply(p,args);
p.__proto__ = source.prototype;
return p;
}
var A = createInstance(a,"A","hi A");
A.say();
A.hi();
如一个类 ,new 之后的对象如下
function test(){
this.name="taozi";
}
test.prototype={
sex : "nan"
}
var ss = new test();
/*
ss就相当于
{
name : "nan",
__proto__ : {sex : "nan"}
}
*/
//可以测试一下
alert('-----------我是华丽的分割线');
alert(ss.__proto__ === test.prototype); //记得在firefox下测试 ie下无法访问到__proto__ 可以看到弹出来的是true
__proto__这个也得介绍一下,它是个好东西.....
每个对象在初始化的时候都会有这么一个属性;
如: (请在firefox下测试)
var test ={};
alert(test.__proto__); //可以看但弹出的是obj
当有一个对象 假如是test ;查找他的a属
相关文档:
Javascript的事件绑定主要有四种方法(一下在IE中运行正常,但不保证其他浏览器):
[注:onXXX为某一事件,fun为某一function,domId为某一DOM对象id,event类型见后边附录。]
1、在DOM中,直接用onXXX="fun();"进行绑定
2、在Javascript代码中用 DOM对象.onXXX=fun 进行绑定
3、用 DOM对象.attach ......
按钮式:
<INPUT name="pclog" type="button" value="GO" onClick="location.href='url'">
直接跳转式:
<script>window.location.href='url';</script>
<SCRIPT LANGUAGE="javascript">
<!--
window.open
('page.html' ......
一、概述
考虑Html本身不带定时刷新页面的控件,且不考虑使用第三方控件;因此考虑使用Javascript中的setTimeout+xmlhttp来实现定时更新页面中部分内容,此实现在IE6.0及以上版本测试通过,其他浏览器暂时未测试过。
二、功能及特点
1、Javascript通过Microsoft的MSXML对象,动态获取后台数据库数据;
&n ......
调用JavaScript文件
用作导航栏
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> ......
javascript单引号和双引号区别2009-08-27 10:13在一个网页中的按钮,写onclick事件的处理代码,不小心写成如下:
IE提示出错后,再漫不经心地改为:
结果还是出错。
这时,我就想不通了,虽然我知道最直接的解决方法是写成这样:
但为什么javascript中的转义字符\没有效果了呢 ......