請問以下代碼運行結果為何?
function foo(){
foo.abc = function(){alert('def')}
this.abc = function(){alert('xyz')}
abc = function(){alert('@@@@@')};
var abc = function(){alert('$$$$$$')}
}
foo.prototype.abc = function(){alert('456');}
foo.abc = function(){alert('123');}
var f = new foo();
f.abc();
foo.abc();
abc();
輸出為:
alert('xyz')
alert('def')
解釋:
var f = new foo();
//新建了一個foo對象,注意這時個上下文環境到了foo()中
f.abc();
//查找這個對象的abc()方法,輸出xyz,注意如果找不到就會去f.prototype裡找,到那時才會輸出456
foo.abc();
//在foo()中找到abc()方法,輸出def, 如果找不到會跳出foo() 到外面找到abc,輸出123
abc();
//在window中找到abc()方法,ie拋錯
[Reference]
http://jsfiddle.net/eMHY3/
http://www.iteye.com/topic/268801
----------------------------------------------------
var b = function(b){ alert(b); }(
function(){ alert(2); return '3'; }()
);
結果為 ->2 ->3
標籤
ASP.NET MVC
(29)
Visual C#
(15)
JQuery
(10)
Plugins
(8)
JQuery Plugins
(6)
JavaScript
(6)
MySQL
(5)
CSS
(4)
LinQ
(4)
Mac OS
(4)
CentOS
(3)
Design Pattern
(3)
Entity Framework
(3)
IIS
(3)
Python
(3)
Windows
(3)
php
(3)
Docker
(2)
LAMP
(2)
SQL Server
(2)
WCF
(2)
.NET
(1)
.NET Core
(1)
AWS
(1)
Browser
(1)
GIS
(1)
IE
(1)
Internet Security
(1)
Linux
(1)
Platform
(1)
React
(1)
SEO
(1)
Testing
(1)
VMware
(1)
Windows 7
(1)
cookie
(1)
curl
(1)
laravel
(1)
phpBB
(1)
session
(1)
中古屋
(1)
透天
(1)
閒言閒語
(1)
面試
(1)
鳥松
(1)
2014年2月6日 星期四
2013年11月12日 星期二
[ASP.NET MVC] 如何將物件序列化為Json格式,不使用Controller.Json()方法。
在Controller中我們可以輕鬆使用return Controller.Json(obj)方法來將obj序列化成Json格式,
但如果要在其他地方做也許不行,此時可以使用下列方式:
(new System.Web.Script.Serialization.JavaScriptSerializer()).Serialize(obj);
來將obj序列化成Json格式,注意回傳是string。
----
更新:
此種方法會讓<br>轉換為\u003cbr\u003e ,推薦使用Json.NET
var objJson = Newtonsoft.Json.JsonConvert.SerializeObject(obj)
如果objJson中含有Html Tag (例如<br>),則需以變數方式寫在HTML TAG中:
<html>
<div id="D">@objJson</div>
</html>
之後使用JQuery取出:
var aJson = $.parseJSON($('div#D').text());
這樣aJson 就不會出錯了
Reference :
JavaScriptSerializer 類別
但如果要在其他地方做也許不行,此時可以使用下列方式:
(new System.Web.Script.Serialization.JavaScriptSerializer()).Serialize(obj);
來將obj序列化成Json格式,注意回傳是string。
----
更新:
此種方法會讓<br>轉換為\u003cbr\u003e ,推薦使用Json.NET
var objJson = Newtonsoft.Json.JsonConvert.SerializeObject(obj)
如果objJson中含有Html Tag (例如<br>),則需以變數方式寫在HTML TAG中:
<html>
<div id="D">@objJson</div>
</html>
之後使用JQuery取出:
var aJson = $.parseJSON($('div#D').text());
這樣aJson 就不會出錯了
Reference :
JavaScriptSerializer 類別
2013年11月5日 星期二
FireFox 24 停用 JavaScript
FireFox新版把選項拿掉了,要停用請依下列步驟:
在網址列打『about:config』再按 Enter。
Firefox 會說亂搞的話,會讓 Firefox 失去保固,請按下『我發誓,我一定會小心的』。
再在搜尋這裡尋找『Javascript.enabled』。
預設值為『true』,代表啟用,在該項目連按兩下會變『false』,代表停用 JavaScript。
2011年9月4日 星期日
[JQuery] 檢查上傳檔案的附檔名
Check the extension file name for < input type="file" >
範例長這樣子:
由於檔案名稱在使用者選擇後我們是不能修改的(安全性問題),所以我們可以整段HTML替換,這是其中一種方式,個人覺得還不錯~
//檢查Ext副檔名
function CheckExtensionMusic() {
var type = /(.mp3|.MP3|.mP3|.Mp3)$/i;
if (!type.test($(".fileToUploadMusic").val())) {
$(".fileToUploadMusic").replaceWith("");
}
else {
}
}
2011年5月4日 星期三
[JavaScript] 將兩個由JQuery UI DateTimePicker產生的日期時間作判斷大小
Compare two DateTime from JQuery UI DateTimePicker using JavaScript.
====================================
程式碼如下:
當然一定有更好的寫法,趕時間就先這樣用了~
Reference:
http://www.w3schools.com/js/js_obj_date.asp
https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date
====================================
程式碼如下:
//檢查時間有無符合後大於前-
//日期格視為格式yyyy/MM/dd HH:mm
function CheckTime() {
string_1 = $('#StartDateTime').val();
string_2 = $('#EndDateTime').val();
DateTime1 = string_1.split(" "); //區分yyyy/MM/dd 與 HH:mm
DateTime2 = string_2.split(" ");
Date1 = DateTime1[0].split("/"); //區分yyyy ; MM ; dd
Date2 = DateTime2[0].split("/");
Time1 = DateTime1[1].split(":"); //區分HH ; mm
Time2 = DateTime2[1].split(":"); //區分HH ; mm
var TrueDate1 = new Date(Date1[0], (parseInt(Date1[1]) - 1).toString(), Date1[2], Time1[0], Time1[1], 0, 0);
var TrueDate2 = new Date(Date2[0], (parseInt(Date2[1]) - 1).toString(), Date2[2], Time2[0], Time2[1],0,0);
if (TrueDate1 <= TrueDate2) {
return true;
}
return false;
}
當然一定有更好的寫法,趕時間就先這樣用了~
Reference:
http://www.w3schools.com/js/js_obj_date.asp
https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date
Javascript Date() constructor doesn't work.
2011年4月29日 星期五
[JavaScript] 字串去除空白字元 (string Trim function)
JavaScript 是沒有內建Trim Function的,也就是將字串頭尾空白去掉的功能,但是我們可以這樣實作一個Function:
據說這個版本更快:
Refrence:
http://jsgears.com/thread-132-1-1.html
http://www.ijavascript.cn/jiaocheng/javascript-trim-145.html
function trim(s) {
return s.replace(/^\s*|\s*$/g,"")
}
據說這個版本更快:
// Author: Ariel Flesler
// http://flesler.blogspot.com/2008/11/fast-trim-function-for-javascript.html
// Licensed under BSD
function myBestTrim(str) {
var start = -1,
end = str.length;
while (str.charCodeAt(--end) < 33);
while (str.charCodeAt(++start) < 33);
return str.slice(start, end + 1);
};
Refrence:
http://jsgears.com/thread-132-1-1.html
http://www.ijavascript.cn/jiaocheng/javascript-trim-145.html
訂閱:
文章 (Atom)