js原型和原型链是什么 - 网站

js原型和原型链是什么

分类:Vue.js 答疑 - 常见问题 · 发布时间:2021-03-06 15:19 · 阅读:2235

js原型和原型链是:1、原型是一个可以被复制的一个类,通过复制原型可以创建一个一模一样的新对象;2、原型链是原型对象创建过程的历史记录,当访问一个对象的某个属性时,会先在这个对象本身属性上查找。

本文环境:windows10系统、thinkpad t480电脑,该方法适用于所有品牌的电脑。

js原型和原型链是:

原型:一个可以被复制(或者叫克隆)的一个类,通过复制原型可以创建一个一模一样的新对象,也可以说原型就是一个模板,在设计语言中更准确的说是一个对象模板

1)原型是定义了一些公用的属性和方法,利用原型创建出来的新对象实例会共享原型的所有属性和方法

2)严格模式下,原型的属性和方法还是会被原型实例所共享的

3)通过原型创建的新对象实例是相互独立的,为新对象实例添加的方法只有该实例拥有这个方法,其它实例是没有这个方法的

4)原型的总结:

  • 所有引用类型都有一个__proto__(隐式原型)属性,属性值是一个普通的对象

  • 所有函数都有一个prototype(原型)属性,属性值是一个普通的对象

  • 所有引用类型的__proto__属性指向它构造函数的prototype

原型链:原型链是原型对象创建过程的历史记录,当访问一个对象的某个属性时,会先在这个对象本身属性上查找,如果没有找到,则会去它的__proto__隐式原型上查找,即它的构造函数的prototype,如果还没有找到就会再在构造函数的prototype的__proto__中查找,这样一层一层向上查找就会形成一个链式结构

1)原型设计的问题:当查找一个对象的属性时,JavaScript 会根据原型链向上遍历对象的原型,直到找到给定名称的属性为止,直到到达原型链的顶部仍然没有找到指定的属性,就会返回 undefined

也可以理解为原型链继承时查找属性的过程是先查找自身属性,当自身属性不存在时,会在原型链中逐级查找

2)hasOwnProperty 函数:可以用来检查对象自身是否含有某个属性,返回值是布尔值,当属性不存在时不会向上查找对象原型链,hasOwnProperty是 JavaScript 中唯一一个处理属性但是不查找原型链的函数

3)getOwnPropertyNames 函数:可以获取对象所有的自身属性,返回值是由对象自身属性名称组成的数组,同样不会向上查找对象原型链

4)原型链的小结:

  • 一直往上层查找,直到到null还没有找到,则返回undefined

  • Object.prototype.__proto__ === null

  • 所有从原型或更高级原型中的得到、执行的方法,其中的this在执行时,指向当前这个触发事件执行的对象

标签:
js 原型 原型链

相关文章

vue父子组件生命周期执行顺序是什么

执行顺序:父组件先创建,然后子组件创建;子组件先挂载,然后父组件挂载,即“父beforeCreate-> 父create -> 子beforeCreate-> 子created -> 子mounted -> 父mounted”。

vue3.0有哪些新特性

vue3.0新特性有:1、性能比vue2.x更快;2、支持按需编译、体积更小;3、组合API,类似React Hooks;4、暴露了自定义渲染API;5、新增三个组件;6、更好地支持TS。

vue.js路由有什么用?

vue的单页面应用是基于路由和组件的,路由用于设定访问路径,并将路径和组件映射起来。传统的页面应用,是用一些超链接来实现页面切换和跳转的;而在vue-router单页面应用中,则是路径之间的切换,也就是组件的切换。

vue.js能不能导入swiper?

vue.js中能导入swiper插件。方法:1、使用npm工具安装swiper;2、在组件中使用import语句加载插件并导入相关文件;3、在HTML内容中通过添加相关class类来搭建swiper框架和引入相关样式即可。

vue.js怎么做选项卡

vue.js做选项卡的方法:设置tob选项卡,并设置其长宽即可,代码为【<meta charset="UTF-8"><title>Tab选项卡</title><script src="js/vue.js"></script>】。

返回分类 返回首页