基于原型的面向对象:对象是依靠构造器利用原型构造的。
1、字面式对象声明
-
var person={
-
name:'zhangsan',
-
sex:1,
-
age:20,
-
action:function(){
-
alert('abc');
-
}
-
};
-
person.like='H';
-
delete person['like'];
2、构造器创建对象
-
function person(){
-
this.height=167;
-
}
-
person.prototype={
-
name:'zhangsan',
-
age:20,
-
sex:1,
-
action:function(){
-
alert('abc');
-
}
-
}
-
var p=new person();
-
for(var i in p){
-
console.log(i);
-
}
-
for(var i in p){
-
if(p.hasOwnProperty(i)){
-
console.log(i);
-
}
-
}
3、原型链
每个由构造器创建的对象拥有一个指向构造器prototype属性值的隐式引用,这个引用称为原型。
每个原型可以拥有指向自己原型的隐式引用(原型的原型),即所谓的原型链。
-
function person(){
-
}
-
var p=new person();
-
// 对象的隐式引用指向了构造器的prototype属性。
-
console.log(p.__proto__===person.prototype);//true
-
// 原型本身是一个Obect对象
-
console.log(person.prototype.__proto__===Object.prototype);//true
-
// 构造器person本身是一个函数对象
-
console.log(person.__proto__===Function.prototype);//true
-
-
-
function Person(){
-
}
-
Person.prototype={
-
name:"Person",
-
action:function(){
-
alert('abc');
-
}
-
};
-
-
function Man(){
-
this.name="man";
-
}
-
//创建Man对象和Person对象之间的原型链
-
Man.prototype=new Person();
-
var man=new Man();
-
console.log(man.__proto__===Man.prototype);//true
-
console.log(Man.prototype.__proto__===Person.prototype);//true
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/26066458/viewspace-2123860/
,如需转载,请注明出处,否则将追究法律责任。