资讯专栏INFORMATION COLUMN

关于原型简单的了解

Martin91 / 1009人阅读

摘要:在中并没有定义函数的圆形类型,所以原型可以时任何类型。原型时用于保护对象的共享属性和方法的,原型的属性和方法并不会影响函数本身的属性和方法。构造函数属性名属性值,方法名自由属性和原型属性自由属性通过对象的引用添加的属性。

原型

原型是声明

在JavaScript中, 函数时一个包含属性和方法的Function类型的对象。而原型(Prototype)就是Function类型对象的一个属性。在函数定义是就包含了protopype属性,它的出事值时一个空对像。在JavaScript中并没有定义函数的圆形类型,所以原型可以时任何类型。 原型时用于保护对象的共享属性和方法的,原型的属性和方法并不会影响函数本身的属性和方法。
function foo (a,b){
return a+b;
}
console.log (typeof foo.prototyoe);//boject

获取原型

通过如下两种方式可以获取对象的原型,从而设置共享的属性和方法:
通过构造函数的prototype属性
function person(){
console.log ("person instantiated");
}
console.log(person.prototype);
通过Object对象的getPrototypeOf(obj)方法。
function Person(){
console.log (person instantiated);
}
console.log(Object.getprototypeOf(person));

原型的属性和方法

通过如下两种方式可以设置原型的属性和方法。
构造函数.Prototype.属性名+属性值;
构造函数.prototype.方法名=function(){}
直接为原型定义一个新对象。
构造函数.prototype={
属性名:属性值,
方法名:function(){}
}

自由属性和原型属性

自由属性: 通过对象的引用添加的属性。其他对象可能无此属性:即使有,也是彼此独立的属性。
原型属性:从原型属性对象中继承来的属性,一旦原型属性中属性改变,所有继承原型属性对象属性均改变。
function Emo(ename,salary){
this.ename=ename;
this.salary=salary;
}
Emp.prototype={city:北京市,dept:研发部}
var emp1 =new Emp("Mary",3800);
var emp2 =new Emp("tmp",3000);

检测自由或原有属性

使用hasOwnPrototype()方法检测对象时否具有指定的自有属性:
function Hero(){}
var hero = new Hero()
console.log(hero.hasOwnPrototype("name"));
使用in关键字检测对象及其原型链中是否具有指定的属性:
function Hero(){}
var hero=new Hero();
console.;log("name"in hero);

扩展属性或方法

通过原型看为指定构造函数或对象扩展其属性或方法,如下代码实例:
function Hero (){}
Hero.protoptype={
name:"Mary",
salary:3800}
var hero =new Hero();
console.log (hero.name);//mary

重写原型属性

通过构造函数或对象的自由属性可以重写原型的属性, 如下代码示例:
function Hero(){}
Hero.prototype={}

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/108355.html

相关文章

  • 关于个人第一天前端面试面试问答QA,希望能对其他找前端工作朋友有所帮助。

    摘要:两日前,发了一篇吐槽,莫名的火了一把。关于的第一个,其实就是声明一个常量,不允许变更。另外对象迭代这里出自,阮一峰大神写的入门指南,对象篇。 两日前,发了一篇吐槽,莫名的火了一把。经过大家的建议与鼓励,于是修改了简历,开始了重新投递,2天后接到第一份面试邀请。 此文为个人面试经历,QA问答过程与总结,不透露面试公司及面试人员,内容真实,如果有面试过我的大佬看到博客,欢迎指出问题。 循序...

    Youngdze 评论0 收藏0
  • 关于javascript原型原型链,看我就够了(一)

    摘要:要用作原型的对象。函数对象可以创建普通对象,这个我们上面讲过了回顾一下这是一个自定义构造函数普通对象没法创建函数对象,凡是通过创建的对象都是函数对象,其他都是普通对象通常通过创建,可以通过来判断。 关于js的原型和原型链,有人觉得这是很头疼的一块知识点,其实不然,它很基础,不信,往下看要了解原型和原型链,我们得先从对象说起 创建对象 创建对象的三种方式: 对象直接量 通过对象直接量创建...

    MoAir 评论0 收藏0
  • 深入理解JS面向对象(更新中)

    摘要:的面向对象主要包含了两块创建对象继承。构造函数一般来说,我们可以这样定义构造函数构造函数的函数名常大写在这里,我们没有显示的创建对象,没有语句,却将属性和方法赋值给了。 面向对象是软件开发方法。面向对象的概念和应用已超越了程序设计和软件开发,扩展到如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。面向对象是一种对现实世界理解和抽象的方法...

    陈伟 评论0 收藏0
  • JavaScript深入浅出

    摘要:理解的函数基础要搞好深入浅出原型使用原型模型,虽然这经常被当作缺点提及,但是只要善于运用,其实基于原型的继承模型比传统的类继承还要强大。中文指南基本操作指南二继续熟悉的几对方法,包括,,。商业转载请联系作者获得授权,非商业转载请注明出处。 怎样使用 this 因为本人属于伪前端,因此文中只看懂了 8 成左右,希望能够给大家带来帮助....(据说是阿里的前端妹子写的) this 的值到底...

    blair 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<