面向对象的代码实例
首先,使用基本类方法1:
复制代码代码如下所示:
函数(a)/构造函数
{
这个;
this.fun =输出; / /成员函数
}
函数输出(a,b,c)
{
(这一段。);
}
调用
新事物(250);
S.fun(1, 2, 3);
Ouput(1, 2, 3); / /如果在某事是错误的输出
方法二:
复制代码如下:函数A(a)
{
这个;
this.output =功能()
{
(这一段。);
}
}
新事物(2);
S.output(2); / /输出
两。继承
方法1:
复制代码如下:函数A(x)
{
这个;
}
函数B(x,y)
{
1 /方法
*
this.construct =一;
This.construct(X);
删除this.construct;
* /
2 /方法
/ / a.call(,X);
3 /方法
A.apply(这个新的数组(x)); / /或A.apply(这个参数),但参数必须在订单
这个,y = y;
this.print =功能()
{
document.write(X =
}
}
新B(1, 2);
b.print();
警报(B是A); / /错误输出
优点:可以实现多重继承(更好的呼叫)
缺点:
它必须以构造函数的方式使用。
使用instanceof运算符的计算结果为false的继承
方法二:
复制代码如下:函数A()
{
}
A.prototype。x = 1;
函数B()
{
}
b.prototype =新(一); / /不带参数!
B.prototype。Y = 2;
b.prototype.print =功能()
{
(这段。X,
}
新的b();
b.print();
document.write(B是A); / /真正的输出
缺点:
无法实现多重继承
没有参数的构造函数
提示
通常使用混合模式,两者一起使用。
复制代码代码如下所示:
函数A(x)
{
这个;
}
a.prototype.printx =功能(这个。printx) / / =函数里面写的。同样的,同样的…
{
(这段。X,);
}
函数B(x,y)
{
a.call(,X);
这个,y = y;
}
b.prototype =新(一); / /不带参数!
b.prototype.printxy =功能()
{
(这段。X,
}
新B(1, 2);
B.printx(1); / /输出
(b.printxy); / /输出1, 2
document.write(B是A); / /真正的输出
三、使用类似的静态成员函数
复制代码如下:函数A(a)
{
这个;
}
sth.fun =函数(S)
{
document.write(S.A);
}
新事物(2);
Sth.fun(S); / /输出2
四,对象的释放
复制代码如下:var obj =新对象; / / obj是一个参考
obj = null; / /引用,自动垃圾收集;如果你需要释放该对象,都会把它分配给空
五。函数对象
复制代码如下:var v =新功能(arg1
v(1, 2);将输出3
六。回调函数
复制代码如下:函数回调函数
{
Func(精氨酸);
}
功能乐趣(精)
{
document.write(Arg);
}
回调函数。
新函数()
当然,也可以为特定的实现代码使用函数(精氨酸),
但是巨大的函数代码/最好这样做
回调函数;
七,功能的重载
复制代码如下:功能乐趣()
{
开关(参数,长度)
{
案例1:
document.write(参数{ 0 });
打破;
案例2:
document.write(参数{ 0 } +论点{ 1 });
打破;
违约:
document.write(错误!;
打破;
}
}
乐趣(1);
乐趣(1, 2);
八。函数闭包函数,用静态变量实现函数。
复制代码如下:功能乐趣()
{
var=1;
功能的大脑()
{
++;
document.write(V);
document.write();
返回v;
}
返回的大脑;
}
娱乐();
函数(2);输出
函数(3);输出
函数(4);输出