Js的prototype属性

prototype作用在JS中的对象上,可以为对象添加属性和方法。

语法:object.prototype.name=value

细节:当通过一个类创建对象以后,当通过对象访问属性的时候,JS查找属性的顺序是:

    1.对象本身的属性,比如 obj={} obj.age=18

    2.对象的类的prototype中查找,比如 obj={} obj.prototype.age=18

    3.对象的根对象(object对象)中查找

    4.当一个对象的类定义之后,可以通过prototype为对象的类添加新的属性和方法,此后,通过该类新产生的对象就具备了该属性或方法

      function Persion() {
        this.name="xiaol"
      }

      p1 = new Persion()

      p1.name    //"xiaol"

      Persion.prototype.age = 18

      p1.age  //18

      p2 = new Persion()

      p2.age  //18

    5.通过obj.hasOwnProperty(attrName)判断某个属性是否是对象本身的属性,例如obj.hasOwnProperty("age")返回false

    6.通过attrName in obj判断属性是否在对象内(包括本身属性和原型属性),例如:"age" in p1返回ture

时间: 2024-10-27 17:26:32

Js的prototype属性的相关文章

简单理解js的prototype属性

在进入正文之前,我得先说说我认识js的prototype这个东西的曲折过程. 百度js的prototype的文章,先看看,W3School关于prototype的介绍: 你觉得这概念适合定义js的prototype这个东西吗?你是否也认为prototype是一个object对象的属性呢?是的话,请认真认真看我这篇文章,因为这篇文章会毁灭你的人生三观,呵呵,就是有这么严重,因为本人就是被这个定义给害惨的. 不得不说,看了网上的一些介绍prototype的文章,基本上都说prototype是对象的一

js函数prototype属性学习(二)

继续探讨js对象的prototype属性,前面已经看到在创建完一个对戏之后,随时都会有一个_proto_属性伴随所有,那么,这个_proto_又是用来干嘛的,面试时问的高大上的原型链又是怎么回事? 拿出前面已经有的例子,如下: function Person(name){ this.name = name; this.interduceSelf= function(){ alert("my name is " + this.name); }; }; Person.prototype.i

js函数prototype属性学习(一)

W3school上针对prototype属性是这么给出定义和用法的:使您有能力向对象添加属性和方法.再看w3school上给的那个实例,如下图: 仔细一看,原来最基本的作用就是对某些对象的属性.方法来扩展,我对这个实例又多写了几句代码进行测试,如下: var steve= new empolyee("Steve Jobs","enterpriser",1977); 这里我专门查看了steve这个实体所拥有的属性,发现多了一个salary属性,这个属性是新建实体时未曾

js中Prototype属性解释及常用方法

1.prototype的定义 javascript中的每个对象都有prototype属性,Javascript中对象的prototype属性的解释是:返回对象类型原型的引用. 每一个构造函数都有一个属性叫做原型.这个属性非常有用:为一个特定类声明通用的变量或者函数. 你不需要显式地声明一个prototype属性,因为在每一个构造函数中都有它的存在.你可以看看下面的例子: function Test(){} alert(Test.prototype); // 输出 "Object" 1.

js的Prototype属性 解释及常用方法

JavaScript能够实现的面向对象的特征有: ·公有属性(public field) ·公有方法(public Method) ·私有属性(private field) ·私有方法(private field) ·方法重载(method overload) ·构造函数(constructor) ·事件(event) ·单一继承(single inherit) ·子类重写父类的属性或方法(override) ·静态属性或方法(static member) 例子一(JavaScript中允许添加

js原型prototype属性用法实例

//原型方法创建对象的属性和方法,达到共享的目的 function Box(){};//里面什么都没有,如果有就是实例属性和方法 Box.prototype.name='tianwei'; Box.prototype.age='100'; Box.prototype.run=function(){ return this.name+this.age; }; var box1=new Box(); document.write(box1.name); 实例属性不会共享,原型属性共享,优先访问实例属

JS中prototype属性-JS原型模式

1 /* 2 *对象方法 3 *类方法 4 * 原型方法 5 */ 6 function People(name) { 7 this.name = name; 8 this.say = function () { //对象方法 9 alert("my name is "+this.name); 10 } 11 } 12 13 People.run = function () { //类方法(静态方法,只能由类名调用) 14 alert("i can run"); 1

js的__proto__、constructor和prototype属性

__proto__和constructor属性是对象所独有的:prototype属性是函数所独有的.但是由于JS中函数也是一种对象,所以函数也拥有__proto__和constructor属性. 先来看下面这段代码:function foo(){} let f = new foo(); foo()是函数,它的constructor属性指向Function(),它的prototype属性指向foo.prototype,它的__proto__属性指向Function.prototype.f是foo实

JS学习之prototype属性

javascript中的每个对象都有prototype属性,Javascript中对象的prototype属性的解释是:返回对象类型原型的引用.以A.prototype = new B();为例, 理解prototype不应把它和继承混淆,A的prototype为B的一个实例,可以理解A将B中的方法和属性全部克隆了一遍,A可以使用B的方法和属性,这里强调的是克隆而不是继承,可以出现这种情况:A的prototype是B的实例,同时B的prototype也是A的实例. 1 function base