在写javascript代码,读代码的时候发现有时候用‘’ 有时候用 “ ”
问到底什么情况下用单引号比较好,
有什么情况下用双引比较好
有时候又必须区分2者?(比如赋值的时候 var s=“ok”, var homeElement =new Element('id','....'))???
问到底什么情况下用单引号比较好,
有什么情况下用双引比较好
有时候又必须区分2者?(比如赋值的时候 var s=“ok”, var homeElement =new Element('id','....'))???
var come= new Class({
initialize: function(){
this.integerParameter=-1;
this.integerParameter2=-1;
this.integerParameter3=-1;
this.doubleParameter=-1.0;
this.doubleParameter2=-1.0;
}
});
看看这个类 , 如何条用这个类??在看看var Util = new Class({
initialize: function(){
this.dateRegex=/(\d{1,4})-(\d{1,2})-(\d{1,2}) (\d{1,2}):(\d{1,2}):.+/;
},
getDateFromJavaString: function(dateString){
var rezDate=new Date();
var rez=dateString.match(this.dateRegex);
rezDate.setYear(rez[1]);
rezDate.setDate(parseFloat(rez[3]));
rezDate.setMonth(parseFloat(rez[2])-1);
rezDate.setHours(parseFloat(rez[4]));
rezDate.setMinutes(parseFloat(rez[5]));
return rezDate;
}
});var util = new Util();------这个简直就是java类的功能了 如何调用?
1 Dis extend哪一个类?
2 initialize是社么含义
2 Element代表什么意思 ? 全部代码表示什么意思?
var Dis = CategElement.extend ({
initialize: function(id){
this.parent(id);
this.countries=new Hash();
//this.setClassName('MarketTab');
/*var headerRow=new Element('tr',{'class': 'headerRow'});
var dateCell=new Element('td',{'class': 'dateWidth'});
dateCell.setText('DATE');
dateCell.injectInside(headerRow);
var hourCell=new Element('td',{'class': 'hourWidth'});
hourCell.setText('HOUR');
hourCell.injectInside(headerRow);
var homeTeamCell=new Element('td',{'class': 'teamWidth'});
homeTeamCell.setText('HOME-TEAM');
homeTeamCell.injectInside(headerRow);
var awayTeamCell=new Element('td',{'class': 'teamWidth'});
awayTeamCell.setText('AWAY-TEAM');
awayTeamCell.injectInside(headerRow);
var homeCell=new Element('td',{'width': '45','colspan': '2'});
homeCell.setText('HOME');
homeCell.injectInside(headerRow);
var drawCell=new Element('td',{'width': '45','colspan': '2'});
drawCell.setText('DRAW');
drawCell.injectInside(headerRow);
var awayCell=new Element('td',{'width': '45','colspan': '2'});
awayCell.setText('AWAY');
awayCell.injectInside(headerRow);
var expandCell=new Element('td',{'width': '10'});
expandCell.setHTML(' ');
expandCell.injectInside(headerRow);
//headerRow.injectInside(this.topElement);*/ this.elementLine=new Element('tr',{'class': 'titleLine'});
this.elementCell=new Element('td');
this.elementLine.injectInside(topTableBody);
},
addCountry: function(country){
this.countries.set(country.id,country);
this.appendCategChildRow(country);//,'SubMarket' },
C/C++里面倒是双引号表示string;单引号表示char
写个demo 各种试
e.g. var aString="it's very good" ;
var anotherString='it said"good"';
单双引号可以互相嵌套 非常方便~~
发现找到函数定义的地方 eclipse不能做
this.chinese wholesalers
uggr=-1;
this.integerParameter2=-1;
this.integerParameter3=-1;
this.doubleParameter=-1.0;
this.doubleParameter2=-1.0;
# //定义一个javascript类
# function JsClass(privateParam/* */,publicParam){//构造函数
# var priMember = privateParam; //私有变量
# this.pubMember = publicParam; //公共变量
# //定义私有方法
# function priMethod(){
# return "priMethod()";
# }
# //定义特权方法
# //特权方法可以访问所有成员
# this.privilegedMethod = function(){
# var str = "这是特权方法,我调用了\n";
# str += " 私有变量:" + priMember +"\n";
# str += " 私有方法:" + priMethod() +"\n";
# str += " 公共变量:" + this.pubMember +"\n";
# str += " 公共方法:" + this.pubMethod();
#
# return str;
# }
# }
# //添加公共方法
# //不能调用私有变量和方法
# JsClass.prototype.pubMethod = function(){
# return "pubMethod()";
# }
#
# //使用 JsClass的实例
# JsObject = new JsClass("priMember","pubMember");
#
# //alert(JsObject.pubMember);//弹出pubMember信息
# //alert(JsObject.priMember);//弹出undefined信息
# //alert(JsObject.pubMethod());//弹出pubMethod信息
# //alert(JsObject.priMethod());//弹出"对象不支持此属性或方法"的错误
# alert(JsObject.privilegedMethod());
# </script> avaScript 定义类在javascript中定义类或对象有下面几种常用的方式:(1)工厂方式
function createCar(color, doors, mpg){
var tempCar = new Object;
tempCar.color = color;
tempCar.doors = doors;
tempCar.mpg = mpg;
tempCar.showColor = function (){
alert(this.color);
};
return tempCar;
}var car1 = createCar("red", 4, 23);
var car2 = createCar("blue", 3, 25);
car1.showColor();
car2.showColor();
定义了一个能创建并返回特定类型对象的工厂函数,看起来还是不错的,但有个小问题,每次调用时都要创建新函数showColor,我们可以把它移到函数外面,function showColor(){
alert(this.color);
}
在工厂函数中直接指向它
tempCar.showColor = showColor;这样避免了重复创建函数的问题,但看起来不像对象的方法了。(2)构造函数方式
function Car(sColor, iDoors, iMpg){
this.color = sColor;
this.doors = iDoors;
this.mpg = iMpg;
this.showColor = function (){
alert(this.color);
};
}var car1 = new Car("red", 4, 23);
var car2 = new Car("blue", 3, 25);car1.showColor();
car2.showColor();
可以看到与第一中方式的差别,在构造函数内部无创建对象,而是使用this 关键字。使用new 调用构造函数时,先创建了一个对象,然后用this来访问。
这种用法于其他面向对象语言很相似了,但这种方式和上一种有同一个问题,就是重复创建函数。(3)混合的构造函数/原型方式这种方式就是同时使用构造函数方式和原型方式,综合他们的优点,构造函数方式前面介绍过了,现在看一下原型方式
function Car(){}
Car.prototype.color = "red";
Car.prototype.doors = 4;
Car.prototype.mpg = 23;
Car.prototype.showColor = function(){
alert(this.color);
};var car1 = new Car();
var car2 = new Car();
首先定义了构造函数Car,但无任何代码,然后通过prototype 添加属性
优点:
a. 所有实例存放的都是指向showColor 的指针,解决了重复创建函数的问题
b. 可以用 instanceof 检查对象类型
alert(car1 instanceof Car); //true缺点,添加下面的代码:
Car.prototype.drivers = new Array("mike", "sue");car1.drivers.push("matt");alert(car1.drivers); //outputs "mike,sue,matt"
alert(car2.drivers); //outputs "mike,sue,matt"drivers是指向Array对象的指针,Car的两个实例都指向同一个数组。
下面就用一下混合方式:
function Car(sColor, iDoors, iMpg){
this.color = sColor;
this.doors = iDoors;
this.mpg = iMpg;
this.drivers = new Array("mike", "sue");
}
Car.prototype.showColor = function (){
alert(this.color);
};var car1 = new Car("red", 4, 23);
var car2 = new Car("blue", 3, 25);car1.drivers.push("matt");
alert(car1.drivers);
alert(car2.drivers);
这样就没有问题了,并且还可以使用 instanceof(4)动态原型法
function Car(sColor, iDoors, iMpg){
this.color = sColor;
this.doors = iDoors;
this.mpg = iMpg;
this.drivers = new Array("mike", "sue");
if(typeof Car.initialized == "undefined"){
Car.prototype.showColor = function (){
alert(this.color);
};
Car.initialized = true;
}
}var car1 = new Car("red", 4, 23);
var car2 = new Car("blue", 3, 25);car1.drivers.push("matt");
alert(car1.drivers);
alert(car2.drivers);
这种方式是我最喜欢的,所有的类定义都在一个函数中完成,看起来非常像其他语言的类定义,不会重复创建函数,还可以用 instanceofirini 2007-05-13 16:27:08 评论:1 阅读:2676 引用:0