JQuery (1)-----JavaScript 必知必會

1 .JavaScript 對象的基本原理

1.1 對象怎樣成爲對象 var aOjbect = new Object();

1.2 對象的屬性

一般用點操作符來引用對象的屬性,在屬性名稱中有點的話就不可以了。

所以需要更通用的表示法來訪問對象屬性。

object[propertyNameExpression]

 

1.3 對象的字面量

var ride = {

   make : 'Yamaha',

   model : 'V-Star',

   year : 2010,

   purchased : new Date(2005,3,12),

   owner : {

       name:'Spike Spiegel',

       occupation : 'bounty hunter' 

   }

};

這個片段利用對象字面量來創建ride對象。

這個表示法稱爲JSON(JavaScript Object Notation, JavaScript 對象表示法)。

 

1.4 對象作爲window屬性

JavaScript Object 概述的重要概念:

  • JavaScript對象是屬性的無序集合;
  • 屬性由名稱和值構成;
  • 對象可以利用對象字面量來聲明;
  • 頂層變量/函數是window的屬性。

2 函數在JavaScript裏是一等對象

Function可以

  • 指派給變量
  • 指派給對象的屬性
  • 作爲函數參數
  • 作爲函數結果返回
  • 用字面量來創建

函數不僅有值(函數體)還有名稱。

 

2.1 名稱裏面是什麼

函數字面量表示法

doSomethingWonderful = function(){

 alert('does something wonderful');

}

 

2.2 作爲回調函數(callback functions )

在異步編程中最爲流行的概念是回調函數。

setTimeout(function(){ alert('Hi here!'); },5000);

 

2.3 this到底是什麼

 

this所引用的對象被稱爲函數上下文。

函數context 不是由如何聲明函數決定,而是由如何調用函數決定。

JavaScript也提供顯示地辦法設置function context.

通過Function方法call() 或apply()來調用函數,可以把函數上下文設置爲所想的任何東西。

用call()來調用函數(這個函數作爲第一個參數),其餘參數作爲被調用函數的參數。

apply()方法和call()相似,除了第二個參數要求是對象數組。

 

”函數是對象的方法“是不正確的。

在對象充當函數的調用上下文時,函數充當對象的方法。

 

2.4 閉包(closures)

 

閉包就是Function實例,外加對於Function實例的執行來說是必需的、來自環境的本地變量。

JavaScript裏所有的閉包被隱式地創建。這就使得在代碼中難以發現閉包。

 

$(function(){

  var local=1;

  window.setInterval(function(){

    $('#display')

         .append('<div>At ' + new Date()+' local=' + local + '</div`>');

      local++;

  },3000);

});

 

 

函數上下文決不被包含爲閉包的一部分。

如果需要訪問在外部函數裏作爲函數上下文的對象,可以採用普通的習慣用法:在本地變量裏創建this引用的副本,這個副本將被包含在閉包裏。

this.id = 'someID';

var outer = this;

$('*').each(function(){

  alert(outer.id);

});

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章