对象的原型prototype

本文深入探讨了JavaScript中对象原型(__proto__)的概念及其工作原理,包括原型链的查找过程、构造函数及其prototype属性的作用,并通过具体示例展示了如何利用这些特性进行编程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Array object 原型
proto 复杂类型都会有这个 这是一般意义上的原型 比如 Array Object 都会有__proto__
而原型链就是查找的过程 比如Array proto 身上没有一个特定的方法 它会去 proto 的__proto__ 上查找 一直找直到__proto__ 为null,最顶层为null。

prototype是一个属性

   var arr = [1, 2, 3, 2, 3]
        Array.prototype.unique = function () {
            var brr = [];
            var obj = {};
            for (let i = 0; i < this.length; i++) {
                if (!obj[this[i]]) {
                    obj[this[i]] = true;
                    brr.push(this[i]);
                }
            }
            return brr;
        }
        console.log(arr);

在这里插入图片描述

构造函数的原型
构造函数有个属性prototype ,prototype让你自己写,对构造函数属性prototype的操作,最终会反应到该构造函数的实例上。

function Fn(){
    this.name = "CJF"
}
Fn.prototype.name="CJF1";
Fn.prototype.getName = function(){
    return this.name;
}
var f = new Fn();
f.name;//输出 'CJF'
f.getName(); //输出 'CJF'
Fn.prototype.getName();//输出 'CJF1'

f是构造函数的实例 f有__proto__ 属性 指向 Fn的原型prototype
当对象自身属性和原型属性相同时,自身属性优先级高于原型属性,但是当对象自身没有我们要访问的属性或者方法时,就会沿着创建当前对象的构造函数的原型(原型链)查找要访问的属性,一旦查找到就返回对应属性,没查找到对应属性返回undefined,但是没查找到要访问的方法会报错(因为没有该方法却还要执行该方法所以报错)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值