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

JSprototype介绍

console.log(o2.a); //[] console.log(typeof o2.fn); //function 上面的代码运行结果完全符合预期,但同时也说明一个问题,在o1修改了...a和fn,而在o2没有改变,由于数组和函数都是对象,是引用类型, 这就说明o1的属性和方法与o2的属性与方法虽然同名但却不是一个引用,而是对Obj对象定义的属性和方法的一个复制。...同样道理如果在实例定义如prototype同名的属性或函数,则会覆盖prototype的属性或函数。...的[] 构造简单对象 当然prototype不是专门为解决上面问题而定义的,但是却解决了上面问题。...了解了这些知识就可以构建一个科学些的、复用率高的对象,如果希望实例对象的属性或函数则定义到prototype, 如果希望每个实例单独拥有的属性或方法则定义到this,可以通过构造函数传递实例化参数

86310

jsprototype的解析

js的方法可以分为三种:对象方法、类方法、prototype方法 //对象方法 function People(name){ this.name=name; this.introduct=function...=function(){ alert(“我的名字是”+this.name); } 这里要注意类方法只能通过类名.方法名调用,实例方法只能通过实例名.方法名调用,反之不可以 还有prototype...是类的属性,new出来的对象是没有这个属性的,比如People.prototype可以,var p=new People(); p.prototype不可以 function Aclass2(){...this.property=1; this.method=function(){ alert(1); } } 子类重写父类的属性和方法,要注意不能修改父类的属性和方法,可以这样写Aclass2.prototype...=new Aclass(); 把父类的一个实例对象赋值给子类的prototype属性,我们调用实例对象的时候,首先会调用构造函数的属性和方法,然后是 prototype写的和父类的属性和方法 发布者

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

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

很早就知道prototype.js是一个javascript的工具函数库,平时的开发中使用频率也非常的高,但是,由于工作时间问题,一直都没有静下心来研究学习一下,最近又萌发了系统学习prototype.js...关于prototype.js 如果你曾经使用过prototype.js,那么,本系列文章希望能够给你提供一个使用指南,可以作为prototype.js函数的参考文档。...从名字上就能看出来,prototype.js是个js文件,对,它的确是个js文件,是个拥有四千多行代码的文件,对于javascript的初学着来说,要读懂它,太难了,就像普通百姓很难了解电视机的原理一样...prototype.js的作者是Sam Stephenson,对,是个老外,我不崇洋媚外,但我的确欣赏老外在技术领域的专注和细致,这里向他老人家致敬了。...系列文章列表(动态更新prototype.js的系列文章——$()函数 prototype.js的系列文章——$F()函数 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn

72040

js中原型(prototype)

函数的prototype属性(图) * 每个函数都有一个prototype属性, 它默认指向一个Object空对象(即称为: 原型对象) * 原型对象中有一个属性constructor, 它指向函数对象...给原型对象添加属性(一般都是方法) * 作用: 函数的所有实例对象自动拥有原型的属性(方法) --> // 每个函数都有一个prototype...属性, 它默认指向一个对象(即称为: 原型对象) console.log(Date.prototype, typeof Date.prototype) function fn() { }...console.log(fn.prototype, typeof fn.prototype) // 原型对象中有一个属性constructor, 它指向函数对象 console.log(Date.prototype.constructor...给原型对象添加属性(一般都是方法) function F() { } F.prototype.age = 12 //添加属性 F.prototype.setAge = function

1K00

jsfor in碰到Array.prototype的问题

最近一个js项目中使用了for(let i in arr) {} 循环,for in的好处就是被遍历的对象可以是数组,可以是对象,就算是null和undefined都没有问题,不会报错,所以被大量使用,...而且当一个无序的数组更是不会遍历空数据。...自定义方法,结果项目开始报错,最后发现问题出现在for in的时候会遍历枚举对象属性,包括prototype的enumerable为true的对象属性,所以就出现问题了。...刚开始我找问题,发现给Array增加自定义方法可以用以下2种办法: Array.prototype.last = function () { console.log('do last'); }...然后用for in遍历的时候只发现了last,使用defineProperty是默认了enumerable:false,可是插件不是都使用了 defineProperty方法,如果我们把第三方的插件的方法

93640

js-函数的prototype

js-函数的prototype 1、 函数的prototype属性 2、 给原型对象添加属性(一般都是方法) 3、 显式原型与隐式原型 1、 函数的prototype属性 每个 函数 都有一个prototype...(Date.prototype) //如图1所示 function fun(){ } console.log(fun.prototype) //默认指向一个object空对象(没有我们的属性...) 图1 图2 /* Date函数的流程基本就是 首先创建一个Date函数, 然后通过Date.prototype(指向原型对象)向Date函数原型对象添加很多方法 如下:以函数fun为例 *.../ function fun(){ } fun.prototype.test = function(){ } console.log(fun.prototype) 原型对象中有一个属性...// true console.log(fun.prototype.constructor === fun) // true 2、 给原型对象添加属性(一般都是方法) 作用:函数的所有实例对象自动拥有原型的属性

64220

【专业技术】关于JSprototype

概述: 在接触JS的过程,随着理解的深入会逐渐的理解一些比较深奥的理论或者知识,那么今天我们来介绍一下比较难理解的prototype和constructor。...在prototype对象又有一个constructor属性,这个constructor属性同样指向一个constructor对象,而这个constructor对象恰恰就是这个function函数本身。...这就是prototype的功劳了,uw3cprototype属性的name对象,在uw3c被new构造函数之后,被继承到了对象test的属性。...在uw3c的prototype对象中出现的任何属性或者函数都可以在test对象中直接使用,这个就是JS的原型继承了。...uw3c("js");//姓名:js,年龄:15,性别:man 看完这个例子大家应该明白了,使用prototype既能保留公有性,又能具有私有性。

1.1K60

理解js的原型链,prototype与__proto__的关系

首先,要明确几个点: 1.在JS里,万物皆对象。方法(Function)是对象,方法的原型(Function.prototype)是对象。因此,它们都会具有对象共有的特点。...即:对象具有属性__proto__,可称为隐式原型,一个对象的隐式原型指向构造该对象的构造函数的原型,这也保证了实例能够访问在构造函数原型定义的属性和方法。...那么当我们调用p.Say()时,首先p没有Say这个属性, 于是,他就需要到他的__proto__中去找,也就是Person.prototype,而我们在上面定义了 Person.prototype.Say...__proto__,也就是 Programmer.prototype,也就是p1去找,由于p1也没有Say,那就去p.__proto__....最后,其实prototype只是一个假象,他在实现原型链只是起到了一个辅助作用,换句话说,他只是在new的时候有着一定的价值,而原型链的本质,其实在于__proto__!

1.2K80

帮你彻底搞懂JSprototype、__proto__与constructor(图解)

前言   作为一名前端工程师,必须搞懂JSprototype、__proto__与constructor属性,相信很多初学者对这些属性存在许多困惑,容易把它们混淆,本文旨在帮助大家理清它们之间的关系并彻底搞懂它们...但是由于JS函数也是一种对象,所以函数也拥有__proto__和constructor属性,这点是致使我们产生困惑的很大原因之一。...感谢网友的指出,这里解释一下上段“每个对象都有构造函数”这句话。...而单从constructor这个属性来讲,只有prototype对象才有。每个函数在创建的时候,JS会同时创建一个该函数对应的prototype对象,而函数创建的对象....本文就此结束了,希望对那些对JSprototype、__proto__与constructor属性有困惑的同学有所帮助。

62820

「转」javascriptprototype

但是在Javascript语言体系,是不存在类(Class)的概念的,javascript不是基于‘类的',而是通过构造函数(constructor)和原型链(prototype chains)实现的...3.prototype属性的作用 为了解决构造函数的对象实例之间无法共享属性的缺点,js提供了prototype属性。...js每个数据类型都是对象(除了null和undefined),而每个对象都继承自另外一个对象,后者称为“原型”(prototype)对象,只有null除外,它没有自己的原型对象。...这很正常,毕竟是js中比较重要又比较抽象的概念,不可能那么快就掌握,再啃多几篇,说不定掌握其精髓。在某乎上,有一个活生生的实例,可能也是大家会遇到的问题。可以看看 js构造函数和原型对象。...以上所述是小编给大家介绍的详解Javascriptprototype属性(推荐)的相关知识,希望对大家有所帮助。

55840
领券