js基础——原型对象

每当我们创建一个函数时,解析器都会向函数添加一个新的属性prototype,这个属性对应着一个对象,这个对象叫做原型对象。

  1. 当函数以构造函数调用时,它所创建的对象都会产生一个隐含的属性,指向该构造函数的原型函数。对于该原型对象,可以使用__proto__来访问该属性;
  2. 同一个类的实例都可以访问该原型对象。我们可以将对象中共有的属性或方法,统一设置到原型对象中去;
  3. 当对象访问一个属性或方法时,先在对象自身中寻找,如果找不到,再去原型对象中去找。

在原型对象中添加属性:

类名.prototype.属性名 = 属性值;

在原型对象中添加方法:

类名.prototype.方法名 = function(){函数体};


当我们想要检查对象中是否含有该属性时,使用关键字in,但是这样无法检查出在原型对象中的属性,所以使用hasOwnProperty来检查。

方法:对象名.hasOwnProperty("属性名");

原型对象也有原型。当我们在对象中使用属性或方法时,现在对象中寻找,如果没有,去原型中寻找,如果原型中有,则使用,若没有,去原型的原型中找,若有,则使用,否则继续寻找,直到找到Object对象中停止。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>原型对象</title>
    <script>

        function Student(name, age, sex) {
            this.name = name;
            this.age = age;
            this.sex = sex;
        }

        var stu = new Student("Anne", 18, "女");
        Student.prototype.department = "science";
        Student.prototype.show = function () {
            document.write("Name: " + this.name + "<br>");
            document.write("Age: " + this.age + "<br>");
            document.write("Sex: " + this.sex + "<br>");
        };
        stu.show();
        document.write("Department:" + stu.department + "<br>");
        var result1 = stu.hasOwnProperty("name");
        var result2 = stu.hasOwnProperty("department");
        document.write("name是否属于对象stu:" + result1 + "<br>");
        document.write("department是否属于对象stu:" + result2);
    </script>
</head>
<body>
</body>
</html>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值