Object对象的属性
2018-07-19 本文已影响0人
小姨家错对门
1、prototype属性
该属性返回对象类型原型的使用。
objectName.prototype
参数说明:
objectName:是对象的名称。
用prototype属性可以提供对象的类的一组基本功能。对象的新实例“继承”赋予该对象原型的操作。
例如,要为Array对象添加返回数组中最大元素值的方法是,声明该函数,将它加入Array.prototype,并使用它。
function array_max(){
var i,max=this[0];
for(i = 1;i < this.length;i++){
if(max < this[i]){
max = this[i];
}
}
return max;
}
Array.prototype.max = array_max;
var x = new Array(1,2,3,4,5,6,3,1,7);
var y = x.max();
console.log(y);
//结果:7,y保存数组x中的最大值
所有js固有对象都有只读的prototype属性。可以像该例中那样为原型添加功能,但该对象不能被赋予不同的原型。然而,用户定义的对象可以被赋给新的原型。
2、constructor属性
该属性表示创建对象的函数
object.constructor
参数说明:
object:必选项。是对象或函数的名称。
constructor属性是所有具有prototype的对象的成员。它们包括除Global和Math对象以外的所有js固有对象。constructor属性保存了对构造特定对象实例的函数的引用。例如:
x = new String("Hi");
if(x.constructor == String){
console.log(true); //进行处理(条件为真)
}
或
function MyFunc(){
//alert("aaa"); //函数体
}
y = new MyFunc;
if(y.constructor == MyFunc){
console.log(true); //进行处理(条件为真)
}
//结果: true
千万别告诉别人哇~~