<%--進階JavaScript<1>物件方法屬性操作--%>
<script type="text/javascript">
//委派Function?!
function say(msg) { alert(this.Name + ' 說:' + msg); }//建立物件
var person = new Object();
person.Name = "Sam";
person.say = say;//取得屬性與呼叫方法
alert("Name = " + person.Name);
person.say("Hello !");//透過名稱字串呼叫方法與取得屬性
alert("Name = " + person["Name"]);
person["say"]("Hello !");
</script>
<%--進階JavaScript<2>匿名方法--%>
<script type="text/javascript">
//建立物件
var person = new Object();
person.Name = "Peggy";
//匿名方法設定方法
person.say = function(msg) { alert(this.Name + ' 說:' + msg) };//取得屬性與呼叫方法
alert("Name = " + person.Name);
person.say("匿名方法耶 !");//透過名稱字串呼叫方法與取得屬性
alert("Name = " + person["Name"]);
person["say"]("匿名方法耶 !");
</script><%--進階JavaScript<3>匿名物件--%>
<script type="text/javascript">
//建立匿名物件
var person = {
Name: "Peggy and Sam",
say: function(msg) { alert(this.Name + ' 說:' + msg); }
};//取得屬性與呼叫方法
alert("Name = " + person.Name);
person.say("匿名物件耶 !");//透過名稱字串呼叫方法與取得屬性
alert("Name = " + person["Name"]);
person["say"]("匿名物件耶 !");
</script>
網誌標籤
.NET Framework
(5)
文字編碼
(4)
防毒軟體
(1)
其他
(11)
資料庫
(25)
攝影
(2)
ADO.NET Entity Framework
(2)
ASP.NET
(49)
ASP.NET MVC
(4)
ASP.NET Test
(4)
CSS
(1)
Design Patten
(1)
FCKEditor
(3)
HTML
(2)
HTML5
(1)
hyper-v
(1)
IIS
(6)
JavaScript
(9)
JQuery
(1)
LINQ
(2)
MailTo編碼
(2)
oracle
(6)
RegularExpression
(1)
Rhino Mocks
(1)
Security
(2)
Server2008R2
(1)
SharePoint
(5)
Sql 2008
(1)
SSIS
(1)
SyntaxHighlighter
(1)
TFS2010
(1)
VirtualBox
(1)
VistualStudio2010
(3)
vs2003升級vs2008
(1)
windows
(1)
windows 7
(1)
JavaScript進階技巧
Delegate,AnonymousDelegate,Func,LambdaExpression,Linq演化過程程式範例
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace TestLambdaExpression2 { static class Program { static void Main(string[] args) { ListallPerson = GetAllPerson(); #region Func //1. Func FuncSelector = new Func (heightselector); Console.WriteLine(GetMaxFunc(allPerson, FuncSelector)); //2. Func FuncSelector2 = heightselector; Console.WriteLine(GetMaxFunc(allPerson, FuncSelector2)); //3. Console.WriteLine(GetMaxFunc(allPerson, heightselector)); //4. Console.WriteLine(allPerson.GetMaxFunc(heightselector)); //5.使用Lambda Expressions精簡Func之寫作 Console.WriteLine(allPerson.GetMaxFunc(p => p.height)); //6.因為Max為多型,必須先宣告形式才不會發生錯誤 Func FuncSelector3 = heightselector; Console.WriteLine(allPerson.Max(FuncSelector3)); #endregion #region Delegate //1. heightestSelector DelegateSelector = heightselector; Console.WriteLine(GetMaxDelegate(allPerson, DelegateSelector)); //2. Console.WriteLine(GetMaxDelegate(allPerson, heightselector)); //3. Console.WriteLine(allPerson.GetMaxDelegate(heightselector)); //4.AnonymousDelegate Console.WriteLine(allPerson.GetMaxDelegate(delegate(Person p) { return p.height; })); //5.使用Lambda Expressions精簡AnonymousDelegate之寫作 Console.WriteLine(allPerson.GetMaxDelegate(p => p.height)); //6.會發生錯誤,因System.linq.Max需定義Func ..不可傳入Delegate,會無法判定型式 //heightestSelector DelegateSelector2 = heightselector; //Console.WriteLine(allPerson.Max(DelegateSelector2)); //7.使用System.linq.Max,AnonymousDelegate Console.WriteLine(allPerson.Max(delegate(Person p) { return p.height; })); //8.使用System.linq.Max,Lambda Expressions精簡AnonymousDelegate之寫作 Console.WriteLine(allPerson.Max(p => p.height)); Man[] mans = Array.ConvertAll (allPerson.ToArray(), p => new Man() { name = p.name, weight = p.weight }); Console.WriteLine(mans.Max(p => p.weight)); #endregion } public delegate int heightestSelector(Person p); public static int heightselector(Person p) { return p.height; } private static int GetMaxFunc(this List allPerson, Func selector) { return (from i in allPerson select selector(i)).Max(); } //private static decimal GetMaxFunc(this List allPerson, Func selector) //{ // return (from i in allPerson // select selector(i)).Max(); //} private static int GetMaxDelegate(this List allPerson, heightestSelector selector) { return (from i in allPerson select selector(i)).Max(); } static List GetAllPerson() { List persons = new List (); persons.Add(new Person { name = "A", height = 150, weight = 50 }); persons.Add(new Person { name = "B", height = 160, weight = 60 }); persons.Add(new Person { name = "C", height = 170, weight = 70 }); persons.Add(new Person { name = "D", height = 180, weight = 80 }); persons.Add(new Person { name = "E", height = 190, weight = 90 }); return persons; } } public class Person { public string name { get; set; } public int height { get; set; } public int weight { get; set; } } public class Man { public string name { get; set; } public int weight { get; set; } } }
訂閱:
文章 (Atom)