Js的原型理解

Js的原型一直都是新手困惑的东西

原型也是Js强大的功能之一, 在面向对象编程里, 原型是必不可少的环节

我们知道Js有五种基本类型: String, Number, Boolean, undefined和null

还有三种引用类型: Array, Object, Function

而对于array类型, 也有join, reverse, pop, shift等方法供我们调用

类似于这样:

let arr = [];

空空的数组,可是为什么会有方法供我们调用呢?

这里就是原型了.

每一个Js对象创建时都会从相应的原型继承基本的方法,

还有:

let obj = new Object(null);

这句Js代码会创建一个obj对象, 但是这个对象却继承于null, 所以,不会有任何内置方法, 就连最基础的tostring也没有

原文地址:https://www.cnblogs.com/jedenzhan/p/8728422.html

时间: 2024-10-12 18:26:18

Js的原型理解的相关文章

前端基本知识(二):JS的原型链的理解

之前一直对于前端的基本知识不是了解很详细,基本功不扎实,但是前端开发中的基本知识才是以后职业发展的根基,虽然自己总是以一种实践是检验真理的唯一标准,写代码实践项目才是唯一,但是经常遇到知道怎么去解决这个问题,但是不知道使用的是什么一种方法,方法的原理是什么,现在觉得大学里学习的基本知识还是很重要的,一定有自己的理解才能走的更远. 无论以后自己的学习新的技术,但是万变不离其宗,基本扎实,学习效率高. 废话这么多,开始了今天理解的四部分部分. 一.JS的原型链理解方式 二.原型理解 三.规则 四.j

js 原型理解(原型对象)

以前在网上搜了一些关于js原型的资料,看了过后,是有一部分理解,但是还不够全面,在这我就写写下关于js的原型. 看了下js高级程序设计,我对js原型的有了一定的理解.里面谈到我们创建对象时,如果一直手写一些相似的对象或者说里面有重复的属性时,会非常麻烦.列如: let a = { name: 'a', idnex: 1 } let b = { name: 'b', idnex: 2 } 为了解决这种问题,就出来了一些能创建对象的模式. //工厂模式 function createObj (nam

怎么理解js的原型链继承?

前言 了解java等面向对象语言的童鞋应该知道.面向对象的三大特性就是:封装,继承,多态. 今天,我们就来聊一聊继承.但是,注意,我们现在说的是js的继承. 在js的es6语法出来之前,我们想实现js的继承关系,需要借助于原型链.之前的文章,我有讲过原型和原型链的概念.在这,再重新回顾一下. js中万物皆对象,每个对象都有一个隐式原型 __proto__ ,指向创建它的构造函数的原型对象. 函数(构造函数)除了有一个隐式原型对象,还有一个属性prototype,它指向一个对象,这个对象就是原型对

js面向对象深入理解

js面向对象深入理解 ECMAScript 有两种开发模式:1.函数式(过程化),2.面向对象(OOP).面向对象的语言有一个标志,那就是类的概念,而通过类可以创建任意多个具有相同属性和方法的对象.但是,ECMAScript 没有类的概念,因此它的对象也与基于类的语言中的对象有所不同. 一.创建对象 创建一个对象,然后给这个对象新建属性和方法. var box = new Object(); //创建一个Object 对象 box.name = 'Lee'; //创建一个name 属性并赋值 b

对JavaScript闭包和原型理解

最近在学js脚本的一些东西觉得里面有2个知识点比较难理解所以做了如下总结. 1.闭包 简单的理解:一个函数a ,内部有个函数b,那么这个函数b当被作为a函数的返回值得时候被外部的全局变量引用了,那么这就是一个闭包. 官方解释是:闭包是一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分. 如: a=function() { var n=1; b=function( n=n+1; alert(n) } return b; } var c=a()aler

JavaScript 原型理解

创建一个对象可以通过对象字面量的方式: var stu = { name:"张三", sayname:function(){ console.log(this.name); } 可是,我们要创建多个stu对象总不能把上面代码重复写很多次吧? 我们可以使用最简单的工厂函数,返回一个对象: function stuFactory (name){ return { name:name, sayname:function(){ console.log(this.name); } } } //这

js prototype 原型

(1)原型理解: 原型法的主要思想是,现在有1个类A,我想要创建一个类B,这个类是以A为原型的,并且能进行扩展.我们称B的原型为A 首先定义了baseClass类,然后我们要定义extentClass function baseClass() { this.showMsg = function() { alert("baseClass::showMsg"); } } function extendClass() { } extendClass.prototype = new baseC

JS 简单原型对象

<!-- ————————JS简单原型 ———————— --> function Person(){}; Person.prototype={ //constructor:Person,//必须加上 表示原型对象的构造函数 name:"Z3", age:"20", job:"人才", say:function(){ alert("简单原型"); } }; //ECMN5 给原型对象重新设置构造函数definePr

JS数据类型的理解(猜测)

Js 数据类型 对于这个主题,首先来看几个问题,如果你对这几个问题很清楚的话,那就请直接跳过吧,不用接着往下看了,如果不清楚,建议你还是看看. 1)如果判断函数?function 和object的联系是什么? 2)typeof 和instanceof 的区别是什么和作用是什么? 3)undefined 和null 有什么区别? 4)js 有哪几种基本的数据类型? 5)Undefined,undefined,’undefined’分别是什么? 6)typeof null  ,null instan