您的位置:首页 > 游戏 > 手游 > 招远做网站_网站点击量 哪里查询_南宁网站seo优化公司_最火的推广平台

招远做网站_网站点击量 哪里查询_南宁网站seo优化公司_最火的推广平台

2025/4/24 11:57:41 来源:https://blog.csdn.net/2301_82051744/article/details/146129164  浏览:    关键词:招远做网站_网站点击量 哪里查询_南宁网站seo优化公司_最火的推广平台
招远做网站_网站点击量 哪里查询_南宁网站seo优化公司_最火的推广平台

8.1 原型的基本概念

  • 原型(prototype

    原型是function对象的一个属性,它定义了构造函数制造出的对象的公共祖先,通过该构造函数产生的对象,可以继承该原型的属性和方法,原型也是对象。

    Person.prototype.lastName = '刘'
    function Person(){}var person1 = new Person();
    var person2 = new Person();
    console.log(person1.lastName);	// 刘
    console.log(person2.lastName);	// 刘
    

8.2 原型有什么用

  • 原型的作用

    • 给我们构造函数实例化出的对象设置公共的属性或方法使用的
  • 方法写在哪

    • 方法写在原型上
      • 写在构造函数里的方法和属性会重新克隆一次,会导致占用内存较高
    • 需要配置的属性写在构造函数上
    function Person(name) {this.name = name; // 每个实例的私有属性
    }Person.prototype.getName = function() { // 所有实例共享的方法return this.name;
    };var person1 = new Person("Alice");
    var person2 = new Person("Bob");console.log(person1.getName()); // 输出:Alice
    console.log(person2.getName()); // 输出:Bob
    

8.3 原型链

  • 函数才有 prototype 属性,对象有 __proto__ 或 [[prototype]] 属性

    function Car(){}
    var car = new Car()
    console.log(Car.prototype)		// 函数有prototypr属性
    

    在这里插入图片描述

    console.log(car.prototype)	// undefined,对象没有prototype属性
    
    console.log(car)
    

    在这里插入图片描述

  • 原型链

    • js⾥万物皆对象,所以⼀直访问 _proto_ 属性就会产⽣⼀条链条

    • 链条的尽头是null

      在这里插入图片描述

    • 当js引擎查找对象的属性时,会先判断对象本身是否存在该属性

    • 不存在的属性就会沿着原型链往上找

在这里插入图片描述

  • 什么是原型链?

    原型链解决的主要是继承问题
    每个对象拥有⼀个原型对象,通过 proto 指针指向其原型对象,并从中继承⽅法和属性,同时原型对象也可能拥有原型,这样⼀层⼀层,最终指向 null(Object.proptotype.__proto__指向的是null)。这种关系被称为原型链(prototype chain),通过原型链⼀个对象可以拥有定义在其他对象中的属性和⽅法
    

8.4 类型检测

  • typeof

    ⽤于判断基础数据的类型,⽆法区分对象与数组

    var a = 1;
    console.log(typeof a); //numbervar b = "1";
    console.log(typeof b); //stringvar xd;
    console.log(typeof xd); //undefinedfunction fun() {}
    console.log(typeof fun); //functionvar c = [1, 2, 3];
    console.log(typeof c); //objectvar d = { name: "白糖" };
    console.log(typeof d); //object
    
  • instanceof

    ⽤于判断复杂数据的类型,可以区分对象与数组

    instanceof 运算符⽤于检测构造函数的 prototype 属性是否出现在某个实例对象的原型链上,可以理解为是否为某个对象的实例

    var xd = [];
    var xdclass = {};
    console.log(xd instanceof Array); //true
    console.log(xdclass instanceof Array); //falsevar a = [1, 2, 3];
    console.log(c instanceof Array); //truevar b = { name: "baitang" };
    console.log(d instanceof Object); //truefunction Fun() {}
    var xd = new Fun();
    console.log(xd instanceof Fun); //true
    

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com