1、对象属性检索
var student = { name:"zhan" };
要检索name,可以用student["name"] 或者 student.name。
2、对象属性更新
student.name = 'wang';
student.nickname = 'yu';//对象之前没有nickname属性,则自动扩充到改对象中。
3、对象的引用
var x = student;
x.nickname = 'Tom';
var nick = student.nickname;
因为x和student都是指向同一个对象的引用,所以nick为'Tom'。
4、hasOwnProperty 检查对象是否拥有属性,它不会检查原型链。
5、用for in 遍历一个对象中的所有属性名时,改枚举过程会列出所有属性,包括函数和原型中的属性。
var name;
for(name in student){
};
6、4种function调用模式:
方法调用模式:当一个function被保存为对象的一个方法,就被称为方法。
var myObject = { value:0; inscrement: function (inc) { this.value += typeof inc ==='number'? inc : 1; } }; myObject.increment(); document.writeln(myObject.value); //1 myObject.increment(2); document.writeln(myObject.value); //3
函数调用模式:当function不是一个对象的属性时,则被当做一个函数来调用
myObject.double = function () { var that = this; var helper = function () { that.value = add(that.value, that.value); }; helper(); // 以函数的形式调用helper }; //以方法的形式调用double myObject.double(); documnet.writeln(myObject.getValue()); //6
构造器调用模式:
//创建一个名为Quo的构造器函数。它构造一个带有status属性的对象。 var Quo = function (string) { this.status = string; }; //给Quo的所有实例提供一个名为get_status的公共方法。 Quo.prototype.get_status = function (){ return this.status; }; //构造一个Quo实例 var myQuo = new Quo("confused"); document.writeln(myQuo.get_status());
Apply调用模式:apply方法让我们构建一个参数数组并用其去调用函数。它允许我们选择this的值。apply方法接受2个参数。第一个是将被绑定给this的值,第二个就是一个参数数组。
//构造一个包含2个数字的数组,并将它们相加 var array = [3,4]; var sum = add.apply(null,array); //sum值为7 //构造一个包含status成员的对象。 var statusObject = { status:'A-OK' }; //statusObject 并没有继承自Quo.prototype,但我们可以再statusObject上调用get_status方法,尽管statusObject并没有一个名为get_status的方法 var status = Quo.prototype.get_status.apply(statusObject); //status的值为A-OK
7、给类型添加方法: