對象的分類: (1)內部對象:Boolean類、Number類、字符串string、Date類 【Array、Boolean、Date、Function、Global、Math、Number、Object、RegExp、String以及各類錯誤類對象,包括Error、EvalError、RangeError、ReferenceError、SyntaxError和TypeError】 其中Global和Math這兩個對象又被稱爲「內置對象」,這兩個對象在腳本程序初始化時被建立,沒必要實例化這兩個對象。 (2)宿主對象: 就是執行JS腳本的環境提供的對象。對於嵌入到網頁中的JS來講,其宿主對象就是瀏覽器提供的對象,因此又稱爲瀏覽器對象,如IE、Firefox等瀏覽器提供的對象。不一樣的瀏覽器提供的宿主對象可能不一樣,即便提供的對象相同,其實現方式也截然不同!這會帶來瀏覽器兼容問題,增長開發難度。 瀏覽器對象有不少,如Window和Document等等。 (3)自定義對象:即程序員用代碼本身定義的
屬性是與對象相關的值。 訪問對象屬性的語法是:objectName.propertyName example: var obj='hello everyone!'; console.log(obj.length); 打印結果:15
方法是可以在對象上執行的動做 語法:objectName.methodName(); example: var obj='hello everyone!'; obj.toUpperCase(); 打印結果:HELLO EVERYONE
1.使用字面量直接建立程序員
example: var obj={ key:value, key:value, method:function(){ alert('I am Method'); } }
用法:obj.method();數組
2.Object構造函數建立瀏覽器
example: var obj= new Object(); obj.name='lucky', obj.age='18' 用法:obj();
3.使用工廠方式建立函數
example: function object(name, age, Introduction) { var o = new Object(); //建立對象 o.name = 'lucky', o.age = '18', o.Introduction = function() { alert(o.name, o.age); } return o; }
4.使用構造函數建立this
example: function Introduction(name,age,Introduction){ this.name=name; this.age=age; this.Introduction=function(){ alert('My name is' + this.name + 'My age' + this.age); } } 用法: var s1=new Introduction('Lili','16'); var s2=new Introduction('Meimei','17');
5.使用原型建立spa
example: function Proto(){} Proto.prototype.name='Lili'; Proto.prototype.age='12'; Proto.prototype.Introducte=function(){ alert(this.name); }; 用法: var s3 = new Proto();
6.組合使用構造函數和原型模式prototype
example: function Person(name,age, obj) { this.name = name; this.age = age; this.obj = obj; } Person.prototype = { constructor: Person, Introduction: function() { alert(this.name); } } 用法:var Limei = new Person('Limei','20');