JS 对象原型学习笔记function Person(name,age,sex) { this.name = name; this.age = age; this.sex =

function Person(name,age,sex) {
    this.name = name;
    this.age = age;
    this.sex = sex;
}
//使用原型
Person.prototype.sayName = function(){
    alert(this.name);
}
var p1 = new Person('bob',24,'男');
var p2 = new Person('mary',28,'女');
p1.sayName();//bob
p2.sayName();//mary
alert(p1.hasOwnProperty('name'));//true 给定属性存在于对象实例中时,返回true
for(var key in p1){
    console.log(key);//p1的属性名称,函数的名称
    console.log(p1[key]);//p1的属性值,函数体
}

//判断某个属性是否属于原型
function hasPropertyPrototype(object,name){
    return !object.hasOwnProperty(name) && (name in object);
}

//定义一个日期函数:返回星期几
Date.prototype.sayDay = function(){
    alert(this.getDay());
}
var dd = new Date();
dd.sayDay();

function Dog(){
    this.color = 'black';
}
var dog = new Dog();
alert(dog.color);//black
//重写原型
Dog.prototype = {
    constructor:Dog,
    name:'长江七号',
    age:11,
    sayName:function(){
        alert(this.name);
    }
};
//重写原型,切断了现有原型(Dog)与任何之前已经存在的对象实例(dog)之间的联系,它引用的仍然是最初的原型;
alert(dog.color);//black
alert(dog.name);//undefined
//dog.sayName();//会报错
var dog1 = new Dog();
alert(dog1.age);//11
alert(dog1.color);//black
dog1.sayName();//长江七号

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值