//建立一個建構函式或者類
var People = function(){};
//建立對象,通過建構函式
var p1 = new People();
p1.name = "張三";
var p2 = new People();
p2.com = function (i,j){return i-j };
//通過原型prototype 給People類的所有對象新增成員變數
var pt = People.prototype;
pt.name = "明銘";
pt.age = 23;
pt.com = function(i,j){return i+j};
//通過原型prototype,給People添加方法
//說明原型變數不會覆蓋,對象自己添加的屬性變數
alert(p1.name);//輸出張三
alert(p2.name);//輸出明銘
alert(p2.age);
alert(p1.age == p2.age);
//注意,通過對象添加的方法,如果與通過原型對象添加的方法同名,則會出現對象方法覆蓋原型方法
alert(p2.com(30,20));
//People不是靜態成員,因此不能直接調用屬性(輸出undefind)
alert(People.age);
//變數的定義域,所有的成員變數都相當於一個window的屬性
var a = 10;
b = 20;
function Hello()
{
alert("hello");
}
alert(a);
alert(b);
//注意,這兒是直接列印出來函數的名字,找到函數的定義,這不是調用
alert(Hello);
Hello();
//通過window調用
alert(window);
alert(window.a);
alert(window.b);
alert(window.Hello);
window.Hello();
//在方法中,定義的屬性,沒有var 相當於全域變數,var c = 是局部變數
function test()
{
c = 100;
//var d = 1000;
}
test();
alert("c="+c);
//alert("d="+d);
</script>