首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

大白话-prototype属性

今天来聊聊javascript的prototype, ==========先说结论========= --它是什么呢? 它是一个属性。 --谁的属性?...函数的属性,每个javascript的函数都会有一个prototype属性。 --它是做什么的? 用来给函数添加方法的。 就是由此函数通过new操作符创建出来的新对象会自动继承你添加的方法。...========= 吐槽 ============= 看了网上N多教程说prototype的,都什么静态啊,动态啊,创建啊, 原型链啊递归查找啊,找到Obj.prototype什么的,, 说的都对,都没错...但问题是,我他妈的连prototype是什么,怎么用都不明白,这么多背后的原理怎么可能看得懂? 先怎么怎么用, 慢慢用熟练了,再看原理就好理解的多。...另外,每个对象都会有constructor属性更是简单的很,它是怎么个情况呢? 明细天说,, 好吧,一句话介绍constructor: 它就是个指向创建这个对象的函数, 完了。

52790

JavaScript OOP(三):prototype原型对象(即构造函数的prototype属性

constructor属性prototype原型对象有一个constructor属性,默认指向prototype所在的构造函数 1 var O5=function(){}; 2 O5.prototype...=new Array();//O5的prototype属性等于new Array();那么O5的实例化对象共享着Array对象的所有属性和方法,并且O5.prototype的constructor也与Array.prototype...构造函数生成对象;构造函数的原型(prototype)属性上面定义的方法或属性被所有实例化对象共享;构造函数的原型属性是实例对象的原型对象。 2.  ...constructor属性时定义在构造函数的prototype属性(原型对象),被所有实例化对象共享;所以实例化的对象能够直接调用constructor属性 3.  ...构造函数生成实例化对象;构造函数的prototype属性就是实例化对象的原型对象;原型对象上的属性和方法被所有实例化对象所共享!

1K70
您找到你想要的搜索结果了吗?
是的
没有找到

Js如何利用prototype为类创建静态成员属性和方法

前言 为类创建静态成员,是面向对象语言的特点,js是可以通过prototype来实现这一特点 01 具体代码如下所示 // 用function 模拟一个类出来,同时也作为构造函数 function MyClass...定义一个变量 MyClass.prototype.name = "itclanCoder"; // 为MyClass的ptototype定义一个函数,它的所有实例对象都有了 MyClass.prototype.myStaticFun...); // https://coder.itclan.cn 当私有属性与构造器函数添加的属性和方法名相同时,当访问到构造函数内私有属性时,直接就会返回,如果没有,就会沿着原型链,去prototype身上去找...如果还没有找到,会继续往上找,也就是Object顶级对象,要是还没有,那就会返回undefined 分析 prototype是js为每一个对象内置的隐藏属性,它会随着这个对象一直存在,当构造函数内的私有属性和私有方法与构造器函数原型下的属性和方法同名时...私有属性和方法要优先于共有属性 在上面的示例中,在构造器函数内定义了一个私有属性和方法,但同时也创建定义了共有属性和方法,定义在MyClass上,通过new语句实例化后,对象就有prototype的所有属性

1.9K30

原型prototype

);    2.当myObject的上层原型链(本例子即为anotherObject.prototype)中的a属性是一个setter,即myObject.a=3的实质是对anotherObject.prototype.a...3.当myObject的上层原型链(本例子即为anotherObject.prototype)中的a属性是一个普通属性,并且不是只读的,则会进行上述遮蔽操作。...举例来说,foo.prototype的construtor属性只是foo函数声明的时候的默认属性,与a是没有任何关系的,如果你创建了一个新对象代替foo.prototype,那么新对象不会自动获取该属性...a并没有construtor属性,所以他会委托给原型链上的foo.prototype,但是这个对象也没有这个属性,foo,prototype就会再委托给他的原型链上的Object.prototype,并在...Object.prototype对象中找到这个属性

51850

原型链prototype

在JavaScript中,最普通的对象有__proto__属性(指向其原型链),没有prototype属性,原型对象还有constructor属性(指向构造函数对象))。...事实上,prototype是函数才有的属性,_proto_是每个对象都有的属性,而JavaScript里万物皆对象,所以会形成_proto_连起来的链条,这就是原型链。。...console.log(fun.prototype.a); //undefined 当你想要定义这个原型链上的某个属性的时候,必须使用prototype function fun() { } fun.prototype.a...= 0; //输出0 fun.a = 0; //输出undefined console.log(fun.prototype.a); 因此,当你new一个对象出来,访问某个属性的时候,是一样的,必须使用...prototype才能声明某个属性,或者是方法内部调用this声明。

34020

构造函数内的方法与构造函数prototype属性上方法的对比(转)

本文的目的是让大家理解什么情况下把函数的方法写在JavaScript的构造函数上,什么时候把方法写在函数的prototype属性上;以及这样做的好处....为了阅读方便,我们约定一下:把方法写在构造函数内的情况我们简称为函数内方法,把方法写在prototype属性上的情况我们简称为prototype上的方法 首先我们先了解一下这篇文章的重点: 函数内的方法...定义在构造函数内部的方法,会在它的每一个实例上都克隆这个方法;定义在构造函数的prototype属性上的方法会让它的所有示例都共享这个方法,但是不会在每个实例的内部重新定义这个方法....把方法写在构造函数的内部,增加了通过构造函数初始化一个对象的成本,把方法写在prototype属性上就有效的减少了这种成本....上的属性不会被序列化,可以看下面的代码: function A(name) { this.name = name; } A.prototype.sayWhat = 'say what

1.1K30

prototype.js的系列文章——关于prototype.js

很早就知道prototype.js是一个javascript的工具函数库,平时的开发中使用频率也非常的高,但是,由于工作时间问题,一直都没有静下心来研究学习一下,最近又萌发了系统学习prototype.js...关于prototype.js 如果你曾经使用过prototype.js,那么,本系列文章希望能够给你提供一个使用指南,可以作为prototype.js中函数的参考文档。...如果你还是第一次听到prototype.js这个词,那么,你需要进一步读一下下面这些文字了,以便你能更好的了解它到底是个什么东西,现在,我只能告诉你,对于致力于web系统开发的你来说,它的确是个好东西!...prototype.js的作者是Sam Stephenson,对,是个老外,我不崇洋媚外,但我的确欣赏老外在技术领域的专注和细致,这里向他老人家致敬了。...系列文章列表(动态更新中) prototype.js的系列文章——$()函数 prototype.js的系列文章——$F()函数 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn

72040
领券