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);

实例属性不会共享,原型属性共享,优先访问实例属性

//删除属性:

delete box1.name;

delete Box.prototype.name;

//判断属性是否在实例里面:

box1.hasOwnProperty(‘name‘);

  //只要有这个属性就返回true

‘name‘ in box1;
//原型方法创建对象的属性和方法,达到共享的目的
function Box(){};//里面什么都没有,如果有就是实例属性和方法
Box.prototype={
    constructor:Box,
    name:‘tianwei‘,
    age:‘100‘,
    run:function(){
        return this.name+this.age;
    }
}

var box1=new Box();
document.write(box1.constructor);
var box= [1,2,3,2,10,3];
document.write(box.sort());
/*Array.prototype.sort;*/
alert(String.prototype.substr);
String.prototype.addString=function(){
    return this+‘添加成功‘;
};

var box=‘4343‘;
alert(box.addString());

需要独立部分使用构造函数

需要共享部分使用原型模式

//組合構造函數+原型

function Box(name,age){ //需要獨立部分
    this.name=name;
    this.age=age;
    this.family=[‘1‘,‘2‘,‘3‘];
}

Box.prototype={   //共享部分
    constructor:Box,
    run:function(){
        return this.name+this.age;
    }
}

var box1=new Box(‘tian‘,100);

box1.family.push(‘4‘);
alert(box1.family);
var box2=new Box(‘wei‘,200);
alert(box2.family);

把上面封装在一起,使用

动态原型模式

//組合構造函數+原型

function Box(name, age) { //需要獨立部分
    this.name = name;
    this.age = age;
    this.family = [‘1‘, ‘2‘, ‘3‘];
    //原型只需要初始化一次
    if (typeof this.run != ‘function‘) {
        Box.prototype.run = function() {
            return this.name + this.age;
        }
    }
}

var box1 = new Box(‘aaa‘, 111);
alert(box1.run());

var box2 = new Box(‘bbb‘, 222);
alert(box2.run());
时间: 2024-10-23 10:00:09

js原型prototype属性用法实例的相关文章

简单理解js的prototype属性

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

js的offsetParent属性用法详解

js的offsetParent属性用法详解:此属性是javascript中较为常用的属性,对于它的良好掌握也是非常有必要的,下面就通过代码实例介绍一下它的用法,希望能够给需要的朋友带来一定的帮助.一.基本介绍:此属性可以返回距离指定元素最近的采用定位(position属性值为fixed.relative或者absolute)父级元素,如果父级元素中没有采用定位的元素,则返回body对象的引用.语法结构: obj.offsetParent 二.代码实例: <!DOCTYPE html> <

js的nextSibling属性用法简单介绍

js的nextSibling属性用法简单介绍:此属性可以返回当前节点的下一个同级节点.如果下一个同级节点不存在,则此属性返回值是null.语法结构: elementNode.nextSibling 代码实例: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softw

js函数prototype属性学习(一)

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

JS原型,Prototype,原型

对于javascript这样一种前端语言,个人觉得,要真正的理解其oop, 就必须要彻底搞清楚javascript的对象,原型链,作用域,闭包,以及this所引用的对象等概念.这些对弄明白了,应该就可以比较自信的驾驭这种语言了. 大家都知道,javascript中的继承不是使用的类继承的机制,而是使用的另一种方式 – 原型继承.在原型继承方式中,本质上是javascript语言加入原型链这种机制,从而实现了面向对象的重要特性之一 – 继承.在这篇博文中,基于个人的理解,来说说javascript

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属性解释及常用方法

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

js确认框confirm()用法实例详解

先为大家介绍javascript确认框的三种使用方法,具体内容如下 第一种方法:挺好用的,确认以后才能打开下载地址页面.原理也比较清晰.主要用于删除单条信息确认. ? 1 2 3 4 5 6 7 8 9 10 <SCRIPT LANGUAGE=javascript> function del() {  var msg = "您真的确定要删除吗?\n\n请确认!";  if (confirm(msg)==true){   return true;  }else{   retu

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