Author Archive

Author: 大仙
• 星期五, 1月 29th, 2010
//原型链只是 链接

function ClassA (sName,sColor){
   this.name = sName;
   this.color = sColor;
}
ClassA.prototype.name = "Car";
ClassA.prototype.sayName = function(){
        alert(this.name);
}
var obj = new ClassA("Car","red");
obj.name ="Clothes";
obj.sayName();//Colothes
delete obj.name;
obj.sayName();//Car

//=======================================================

//this
//全局this

alert(this === window);//true
alert(window.alert === this.alert);//true
alert(this.parseInt(035,10))l//29

//this是运行时决定的,而不是函数定义的

function sayColor(){//定义一个全局函数,相当于window.sayColor();
      alert(this.color);
}
var color = "red";//定义一个全局变量,相当于window.color = "red";
//sayColor();//等价于window.sayColor();输出red

var Car = {//自定义对象
     color:"blue"//注意语法符号
}
sayColor.apply(this);//等价于window.sayColor();输出red
sayColor.apply(Car);//sayColor中的this===Car;输出blue

//=======================================================

//函数也是对象

//定义一个全局函数

function sayColor(){
    if (this === window){
	      alert ("this is window");
	}
}
sayColor();//this is window
//将sayColor函数的一个color属性定义为函数
sayColor.color = function(){
    if (this === window ){
	     alert("this is window");
	}else if (this === sayColor){
	     alert("this is sayColor");
	}else if (this === sayName){
	     alert("this is sayName");
	}
}
sayColor.color();//this is sayColor
//定义一个新对象用来传递给它
var sayName = new Object;
sayColor.color.apply(sayName);//this is sayName

//=======================================================

//prototype
//在Array的原型中添加min方法

Array.prototype.min = function(){
     var min = this[0];
	 for (var i = 1;i < this.length; i++){
	     if (this[i] < min){
		     min = this[i];
		 }

	 }
	 		 return min;
};
//alert([52,62,2,3,88,99,6].min());//输出2

//但是,神奇的瞬间发生了
var aValue = [];
for (var i in aValue){
	  alert(i);//输出min,for-in中把min方法循环了出来!用hasOwnProperty解决该问题
	  //if (aValue.hasOwnProperty(i)){//判断是否为aValue中的成员
	  // alert(i);
	 // }
}

//=======================================================

//contructor
//contructor始终指向创建当前对象的函数

var arr = [5545,22,553];
var fnTest= function (){};
var oTest = {};//等价于new Object();
alert(arr.constructor === Array);//true
alert(fnTest.constructor === Function);//true
alert(oTest.constructor === Object);//true

//自定义函数

function Car(sColor){
         this.color = sColor;
}
Car.prototype.sayColor = function(){
         alert(this.color);
}
var obj = new Car("red");
//alert(obj.constructor === Car);//true
//alert(Car.prototype.constructor === Car);//true
//alert(obj.constructor.prototype.constructor === Car);//true

//但是!
function Car(sColor){
         this.color = sColor;
}
Car.prototype = {                  //这里被对象覆盖了
        sayColor:function (){
		   alert(this.color);
		}
}
var obj = new Car("red");
alert(obj.constructor === Car);//false
alert(Car.prototype.constructor === Car);//false
alert(obj.constructor.prototype.constructor === Car);//false
//alert(obj.constructor === Object);//true
//alert(Car.prototype.constructor === Object);//true
//alert(obj.constructor.prototype.constructor === Object);//true

//解决方法重新覆盖,这样Car.prototype.constructor === Car
Category: JavaScript  | Leave a Comment
Author: 大仙
• 星期日, 9月 06th, 2009

今天上线一专题。
从版面的设计到页面重构都一个人完成。
PS不咋地,不断进步中。
其中那个滑动门用了人家的一个类。
上图

http://www.999chaye.com/2009zqcybz/

Author: 大仙
• 星期五, 7月 10th, 2009

IE8蔓延中。。。
IE8亦是我一个头疼的问题。
—————————-无名分割线—————————————-
微软在IE8提供三种解析页面的模式
  IE8 Standard Modes :默认的最标准的模式,严格按照W3C相关规定
  IE7 Standards Modes :IE7现在用的解析网页的模式,开起机关是在中加入
  Quirks Modes :IE5用的解析网页的模式,开起机关是删除HTML顶部的DOCTYPE声明
  注意:不同模式间的网页在IE8中可以互相 frame ,因此因不会模式下的DOM和CSS渲染不一样,所以会引发很多问题,务必注意如果你的页面对IE7兼容没有问题,又不想大量修改现有代码,同时又能在IE8中正常使用,微软声称,开发商仅需要在目前兼容IE7的网站上添加一行代码即可解决问题,此代码如下:

<meta http-equiv=”x-ua-compatible” content=”ie=7″ />

  IE8 最新css hack:

  ”\9″ 例:”margin:0px auto\9;”.这里的”\9″可以区别所有IE和FireFox.
  ”*” IE6、IE7可以识别.IE8、FireFox不能.
  ”_” IE6可以识别”_”,IE7、IE8、FireFox不能.

————————————————————————————————-

PS:IE7那段机关好用,为了可用性建议严格按照W3C标准。

Category: xhtml+css  | Tags:  | Leave a Comment