![](/Images/OutliningIndicators/ContractedBlock.gif)
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
/**//*
Patterns模式
Public公共
function Constructor(
)
{
this.membername = value;
}
Constructor.prototype.membername = value;
![](/Images/OutliningIndicators/InBlock.gif)
Private私有
function Constructor(
)
{
var self = this;
var membername = value;
function membername(
) {
}
}
![](/Images/OutliningIndicators/InBlock.gif)
Note: The function statement
function membername(
) {
}
![](/Images/OutliningIndicators/InBlock.gif)
is shorthand for
var membername = function membername(
) {
};
![](/Images/OutliningIndicators/InBlock.gif)
Privileged特权 一个特权A privileged 方法可以访问私有的变量和方法,同时它对公共域可见。也可以删除或替换一个特权方法,但不能改变它。
![](/Images/OutliningIndicators/InBlock.gif)
特权方法是用 this 在构造器中分配的
![](/Images/OutliningIndicators/InBlock.gif)
function Constructor(
)
{
this.membername = function (
)
{
self.membername![](https://www.cnblogs.com/Images/dot.gif)
;
};
}
![](/Images/OutliningIndicators/InBlock.gif)
Static
Constructor.Method = function()
{
this.member
;
}
![](/Images/OutliningIndicators/InBlock.gif)
Add public Method;
这个技巧一般用来添加公共方法。当一个成员被检索且没有在对象中发现的时候,那么它就会从对象构造器的 prototype 成员中去获取它。
这个原型机制可用来实现继承。它也保存内存。要为一个构造器生成的所有对象加入一个方法,将函数加入构造器的prototype 中:
Container.prototype.myMethod = function (
)
{
this.member
;
}
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
*/
![](/Images/OutliningIndicators/None.gif)
//class MyString
function MyString(strs)
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](/Images/OutliningIndicators/ContractedBlock.gif)
{
var _str = strs;//private field;
this.Str = _str;//public field
//public method
this.leftTrim = function(start)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
ret = leftTrim(this.Str,start); //this=new MyString(strs);
return ret;
}
//private method
function leftTrim(str,start)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
if( str.length>0 && str.indexOf(start)==0 )
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
str = str.substring(start.length,str.length);
str = leftTrim(str,start);
}
return str;
}
this.rightTrim = function(end)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
ret = rightTrim(_str,end);
return ret;
}
function rightTrim(str,end)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
if( str.length>0 && str.lastIndexOf(end) == str.length-end.length )
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
str = str.substring(0,str.length-end.length);
str = rightTrim(str,end);
}
return str;
}
var self = this;
this.Trim = function()
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
str = rightTrim(self.leftTrim(" ")," ");
return str;
}
}
![](/Images/OutliningIndicators/None.gif)
//static method
MyString.leftTrim = function(str,start)
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](/Images/OutliningIndicators/ContractedBlock.gif)
{
if( str.length>0 && str.indexOf(start)==0 )
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
str = str.substring(start.length,str.length);
str = this.leftTrim(str,start);
}
return str;
}
![](/Images/OutliningIndicators/None.gif)
MyString.rightTrim = function(str,end)
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](/Images/OutliningIndicators/ContractedBlock.gif)
{
if( str.length>0 && str.lastIndexOf(end) == str.length-end.length )
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
str = str.substring(0,str.length-end.length);
str = this.rightTrim(str,end);
}
return str;
}
//end class MyString
![](/Images/OutliningIndicators/None.gif)
MyString.prototype = new String();
![](/Images/OutliningIndicators/None.gif)
function VR3D()
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](/Images/OutliningIndicators/ContractedBlock.gif)
{
//this.VR3D() = function(){}
this.Name;
this.ChangeName = function(name)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
this.Name = name;
}
this.Url;
this.SetUrl = function(url)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
this.Url = url;
}
this.GetUrl = function()
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
if(this.Url)
return this.Url;
else
return "";
}
}
![](/Images/OutliningIndicators/None.gif)
posted on
2006-04-11 13:09
wanna
阅读(
362)
评论()
编辑
收藏
举报