JavaScript對象是"屬性的無序集合",里面以鍵/值對顯現(xiàn);屬性為字符串,其值為任意類型。
JavaScript中的所有事物都是對象:字符串、數(shù)組、數(shù)值、函數(shù) ...,JavaScript提供了基本的內(nèi)置對象供開發(fā)人員直接使用,如:FormData,String,Date,Array,File等。
在項目開發(fā)中,一些固定的邏輯或功能,通常會封裝在自定義的JavaScript對象中,以便于代碼的復(fù)用和管理。
訪問對象屬性
var value = object.propertyName;
var value = object['propertyName'];
調(diào)用對象的方法
object.methodName();//無參
object.methodName(parm1,...);//有參
自定義對象的創(chuàng)建
1.字面量創(chuàng)建對象
person=new Object();
person.firstname="Bill";
person.lastname="Gates";
person.age=56;
person.eyecolor="blue";
//或者:
person = {
firstname:'Bill',
lastname:'Gates',
age:56,
eyecolor:'blue'
}
2.new 構(gòu)造函數(shù)
function People(name) {
this.name = name;
this.createTool = function(){
console.log('I can fly');
}
}
var people = new People('Paula');
people.createTool();
3.使用Object.create(prototype,propertyDescriptor)
參數(shù)prototype:創(chuàng)建對象的原型,若為null,即對象的原型為undefine
propertyDescriptor:{} 可選,描述屬性
function Animal() {
}
Animal.prototype = {
actions: function(){
console.log('RUN');
}
};
//以Animal對象為原型,可繼承其它原型的方法
var people = Object.create(Animal.prototype,{
name:{value:'tom'},
age:{value:56},
createTool: {value:
function(){
console.log('I CAN JUMP');
}
}
});
console.log(people.name);
console.log(people.age);
people.createTool();
people.actions();