1.js²»Ö§³ÖÖØÔØ£¬ÒòΪjsÀïµÄº¯Êý¶¼ÊÇÒ»¸ö¶ÔÏó£¬jsÀïÓиöÒþº¬¶ÔÏóFunction,ËùÓеÄjsº¯Êý¶¼ÊÇÒ»¸öFunctionÀàÐ͵ĶÔÏó¡£±ÈÈ磺
Java´úÂë
function add(number)
{
alert("hello");
}
function add(number)
{
alert("hello");
}
µÈ¼ÛÓÚ
Java´úÂë
var add = new Function("number","alert('hello');");
var add = new Function("number","alert('hello');");
ÓÉÓÚjsÀïÿһ¸öº¯ÊýÀï¶¼Òþº¬Ò»¸ö¶ÔÏó½Ðarguments,¸ÃargumentsÊÇÒ»¸öÊý×飬ͨ¹ýarguments¿ÉÒÔ»ñµÃµ½Êµ¼Ê´«µÝ²ÎÊýµÄ¸öÊý(arguments.length)¼°Êµ¼Ê´«µÝ²ÎÊýµÄÖµ(arguments[0],arguments[1]...)
ËùÒÔ¿ÉÒÔͨ¹ýarguments¶ÔÏóÀ´Ä£ÄâÖØÔØ£¬ÈçÏ£º
Java´úÂë
function add()
{
if(arguments.length == 1)
{
alert(arguments[0] + 10);
}
......
¼¸ºõÿ¸ö¿ª·¢ÈËÔ±¶¼ÓÐÃæÏò¶ÔÏóÓïÑÔ£¨±ÈÈçC++¡¢C#¡¢Java£©µÄ¿ª·¢¾Ñé¡£ ÔÚ´«Í³ÃæÏò¶ÔÏóµÄÓïÑÔÖУ¬ÓÐÁ½¸ö·Ç³£ÖØÒªµÄ¸ÅÄî - ÀàºÍʵÀý¡£
ÀඨÒåÁËÒ»ÀàÊÂÎ﹫¹²µÄÐÐΪºÍ·½·¨£»¶øÊµÀýÔòÊÇÀàµÄÒ»¸ö¾ßÌåʵÏÖ¡£ ÎÒÃÇ»¹ÖªµÀ£¬ÃæÏò¶ÔÏó±à³ÌÓÐÈý¸öÖØÒªµÄ¸ÅÄî - ·â×°¡¢¼Ì³ÐºÍ¶à̬¡£
µ«ÊÇÔÚJavaScriptµÄÊÀ½çÖУ¬ËùÓеÄÕâÒ»ÇÐÌØÐÔËÆºõ¶¼²»´æÔÚ¡£ ÒòΪJavaScript±¾Éí²»ÊÇÃæÏò¶ÔÏóµÄÓïÑÔ£¬¶øÊÇ»ùÓÚ¶ÔÏóµÄÓïÑÔ¡£
ÕâÀïÃæ¾ÍÓÐһЩÓÐȤµÄÌØÐÔ£¬±ÈÈçJavaScriptÖÐËùÓÐÊÂÎï¶¼ÊǶÔÏó£¬ °üÀ¨×Ö·û´®¡¢Êý×é¡¢ÈÕÆÚ¡¢Êý×Ö£¬ÉõÖÁÊǺ¯Êý£¬±ÈÈçÏÂÃæÕâ¸öÀý×Ó£º
// ¶¨ÒåÒ»¸öº¯Êý - add
function add(a, b) {
add.invokeTimes++;
return a + b;
}
// ÒòΪº¯Êý±¾ÉíÒ²ÊǶÔÏó£¬ÕâÀïΪº¯Êýadd¶¨ÒåÒ»¸öÊôÐÔ£¬ÓÃÀ´¼Ç¼´Ëº¯Êý±»µ÷ÓõĴÎÊý
add.invokeTimes = 0;
add(1 + 1);
add(2 + 3);
console.log(add.invokeTimes); // 2
Ä£ÄâJavaScriptÖÐÀàºÍ¼Ì³Ð
ÔÚÃæÏò¶ÔÏóµÄÓïÑÔÖУ¬ÎÒÃÇʹÓÃÀàÀ´´´½¨Ò»¸ö×Ô¶¨Òå¶ÔÏó¡£È»¶øJavaScriptÖÐËùÓÐÊÂÎï¶¼ÊǶÔÏó£¬ÄÇôÓÃʲô°ì·¨À´´´½¨×Ô¶¨Òå¶ÔÏóÄØ£¿
Õâ¾ÍÐèÒªÒýÈëÁíÍâÒ»¸ö¸ÅÄî - ÔÐÍ£¨prototype£©£¬ÎÒÃÇ ......
ÕâÒ»ÕÂÎÒÃǽ«»áÖØµã½éÉÜJavaScriptÖм¸¸öÖØÒªµÄÊôÐÔ£¨this¡¢constructor¡¢prototype£©£¬ ÕâЩÊôÐÔ¶ÔÓÚÎÒÃÇÀí½âÈçºÎʵÏÖJavaScriptÖеÄÀàºÍ¼Ì³ÐÆð×ÅÖÁ¹ØÖØÒªµÄ×÷Óá£
this
this±íʾµ±Ç°¶ÔÏó£¬Èç¹ûÔÚÈ«¾Ö×÷Ó÷¶Î§ÄÚʹÓÃthis£¬ÔòÖ¸´úµ±Ç°Ò³Ãæ¶ÔÏówindow£» Èç¹ûÔÚº¯ÊýÖÐʹÓÃthis£¬ÔòthisÖ¸´úʲôÊǸù¾ÝÔËÐÐʱ´Ëº¯ÊýÔÚʲô¶ÔÏóÉϱ»µ÷ÓᣠÎÒÃÇ»¹¿ÉÒÔʹÓÃapplyºÍcallÁ½¸öÈ«¾Ö·½·¨À´¸Ä±äº¯ÊýÖÐthisµÄ¾ßÌåÖ¸Ïò¡£
ÏÈ¿´Ò»¸öÔÚÈ«¾Ö×÷Ó÷¶Î§ÄÚʹÓÃthisµÄÀý×Ó£º
<script type="text/javascript">
console.log(this === window); // true
console.log(window.alert === this.alert); // true
console.log(this.parseInt("021", 10)); // 10
</script>
º¯ÊýÖеÄthisÊÇÔÚÔËÐÐʱ¾ö¶¨µÄ£¬¶ø²»ÊǺ¯Êý¶¨Òåʱ£¬ÈçÏ£º
// ¶¨ÒåÒ»¸öÈ«¾Öº¯Êý
function foo() {
console.log(this.fruit);
}
// ¶¨ÒåÒ»¸öÈ«¾Ö±äÁ¿£¬µÈ¼ÛÓÚwindow.fruit = "apple";
var fruit = "apple";
// ´Ëʱº¯ÊýfooÖÐthisÖ¸Ïòwindow¶ÔÏó
// ÕâÖÖµ÷Ó÷½Ê½ºÍwindow.foo();ÊÇÍêÈ«µÈ¼ ......
ÔÚµÚÒ»ÕÂÖУ¬ÎÒÃÇʹÓù¹Ô캯ÊýºÍÔÐ͵ķ½Ê½ÔÚJavaScriptµÄÊÀ½çÖÐʵÏÖÁËÀàºÍ¼Ì³Ð£¬ µ«ÊÇ´æÔںܶàÎÊÌâ¡£ÕâÒ»ÕÂÎÒÃǽ«»áÖðÒ»·ÖÎöÕâЩÎÊÌ⣬²¢¸ø³ö½â¾ö·½°¸¡£
×¢£º±¾ÕÂÖеÄjClassµÄʵÏֲο¼ÁËSimple JavaScript Inheritance
µÄ×ö·¨¡£
Ê×ÏÈÈÃÎÒÃÇÀ´»Ø¹ËһϵÚÒ»ÕÂÖнéÉܵÄÀý×Ó£º
function Person(name) {
this.name = name;
}
Person.prototype = {
getName: function() {
return this.name;
}
}
function Employee(name, employeeID) {
this.name = name;
this.employeeID = employeeID;
}
Employee.prototype = new Person();
Employee.prototype.getEmployeeID = function() {
return this.employeeID;
};
var zhang = new Employee("ZhangSan", "1234");
console.log(zhang.getName()); // "ZhangSan"
ÐÞÕýconstructorµÄÖ¸Ïò´íÎó
´ÓÉÏһƪÎÄÕÂÖйØÓÚconstructorµÄÃèÊö£¬ÎÒÃÇÖªµÀEmployeeʵÀýµÄconstructor»áÓÐÒ»¸öÖ¸Ïò´íÎó£¬ÈçÏÂËùʾ£º
var zhang = new Employee("ZhangSan", "1234");
console.log(zhang.constructor === Employee); // false
console.log(zhang.constructor === Object); ......
ÔÚ±¾ÕÂÖУ¬ÎÒÃǽ«·ÖÎöDouglas Crockford¹ØÓÚJavaScript¼Ì³ÐµÄÒ»¸öʵÏÖ
CrockfordÊÇJavaScript¿ª·¢ÉçÇø×îÖªÃûµÄȨÍþ£¬ÊÇJSON
¡¢JSLint
¡¢JSMin
ºÍADSafe
Ö®¸¸£¬ÊÇ¡¶JavaScript: The Good Parts¡·µÄ×÷Õß¡£
ÏÖÔÚÊÇYahooµÄ×ÊÉîJavaScript¼Ü¹¹Ê¦£¬²ÎÓëYUIµÄÉè¼Æ¿ª·¢¡£ ÕâÀïÓÐһƪÎÄÕÂ
Ïêϸ½éÉÜÁËCrockfordµÄÉúƽºÍÖø×÷¡£
µ±È»CrockfordÒ²ÊÇÎÒµÈС±²³ç°ÝµÄ¶ÔÏó¡£
µ÷Ó÷½Ê½
Ê×ÏÈÈÃÎÒÃÇ¿´ÏÂʹÓÃCrockfordʽ¼Ì³ÐµÄµ÷Ó÷½Ê½£º
×¢Ò⣺´úÂëÖеÄmethod¡¢inherits¡¢uber¶¼ÊÇ×Ô¶¨ÒåµÄ¶ÔÏó£¬ÎÒÃÇ»áÔÚºóÃæµÄ´úÂë·ÖÎöÖÐÏê½â¡£
// ¶¨ÒåPersonÀà
function Person(name) {
this.name = name;
}
// ¶¨ÒåPersonµÄÔÐÍ·½·¨
Person.method("getName", function() {
return this.name;
});
// ¶¨ÒåEmployeeÀà
function Employee(name, employeeID) {
this.name = name;
this.employeeID = employeeID;
}
// Ö¸¶¨EmployeeÀà´ÓPersonÀà¼Ì³Ð
Employee.inherits(Person);
// ¶¨ÒåEmployeeµÄÔÐÍ·½·¨
Employee.method("getEmployeeID", function() {
retur ......
JavaScript¿ÉÒÔÔÚ¿Í»§¶ËʵÏֺܶàÓÐÓõĽ»»¥¶¯×÷¡£Í¨¹ýµ÷ÓÃActive×é¼þ£¬»¹ÄܽøÒ»²½ÌáÉý²Ù×÷ÄÜÁ¦¡£ÔÚ¿Í»§¶ËдÎļþÒ»°ãʹÓÃFSO×é¼þ¡£µ«FSOÓиöÈõµã£¬¾ÍÊÇËü²»ÄÜд³ö¶þ½øÖƵÄÎļþ£¬Õâ¿ÉÄÜÊdzöÓÚ°²È«µÄ¿¼Âǰɡ£
Èç¹ûҪд³ö¶þ½øÖÆÎļþ£¬±ÈÈç´Ó·þÎñÆ÷´«À´µÄWordÎĵµ£¬¿ÉÒÔ²ÉÓÃÁíÒ»¸ö×é¼þ£ºAdodb.Stream¡£ÆäÓ÷¨µÄʾÀýÈçÏ£º
<html>
<body>
<script language="javascript">
function f()
{
var xmlhttp = new ActiveXObject("MSXML2.XMLHTTP.3.0");
xmlhttp.open("GET", "http://localhost/cat.bmp", false);
xmlhttp.send();
var aa =new ActiveXObject("ADODB.Stream");
aa.Type=1; //1=adTypeBinary
aa.Open();
aa.write(xmlhttp.responseBody);
alert(aa.size);
aa.SaveToFile("c:\\ttt\\a.bmp",2);
aa.Close();
}
function g()
{
var fso = new ActiveXObject("Scripting.FileSystemObject");
var path = "c:\\ttt";
if(fso.FolderExists(path)) return;
fso.CreateFolder(path);
}
</script>
......