- 浏览: 203708 次
文章分类
- 全部博客 (224)
- jsp (5)
- jsf (7)
- web (11)
- js (12)
- COBOL (5)
- php (7)
- jconsole (1)
- java (11)
- ajax (1)
- PHP魔法方法 (1)
- 项目管理工具 (3)
- 项目管理 (2)
- svn (8)
- redmine (1)
- mysql (4)
- qrcode,php (1)
- qrcode (1)
- 多进程 (3)
- html (1)
- excel (2)
- seasar2 (1)
- db (1)
- entity (1)
- IOS8 (1)
- SWIFT (1)
- 正则表达式 (1)
- RabbitVCS (1)
- url (1)
- thinkphp (2)
- c++ (5)
- win32 API函数 (1)
- htaccess (1)
- makefile (3)
- C/C++ (12)
- Linux (1)
- miui (2)
- unix (1)
- wechat (1)
- websocket (1)
- SpringMVC (3)
- VSAM (1)
- centos (2)
- wamp (1)
- server (1)
- 优酷视频上传并去除广告 (1)
- owncload (1)
- cloud (1)
- ubuntu (1)
- pdf转换成word (1)
- 微信,weixin (1)
- 行业系统 (3)
- 超级外卖源代码 (0)
- 软件专利 (1)
- 申请 (1)
- vba (1)
- UML (1)
- 程序切片 (1)
- 股票心得 (1)
- 威客建站 (1)
- 微信开发学习路线 (1)
- 远程开机 (1)
- spring mvc (1)
- JEECMS (1)
- Node.js (1)
- ThinkJS (1)
- maven (2)
- MyEclipse+Tomcat+MAVEN+SVN (1)
- Spring+SpringMVC+MyBatis (1)
- wampserver (0)
- RESTful (1)
- hibernate (4)
- Spring+SpringMVC (1)
- 响应式布局 (1)
- 响应式布局模板 (1)
- Aptana (3)
- 遗传算法 (1)
- 进化算法 (1)
- bower (1)
- HTML5 (1)
- Android官方培训课程 (1)
- MySQL锁 (1)
- 扫描枪 (1)
- 微信公众平台 (1)
- 企业号 (1)
- ddns (1)
- java获取外网ip (1)
- DDNS,阿里云,云解析,万网域名,阿里云域名 (1)
- SEO (1)
- Jboss (2)
- wildfly (1)
- WildFly8 (2)
- NT Kernel (1)
- 反向代理 (1)
- Spring嵌套事务 (1)
- apache (3)
- 防止浏览器记住用户名及密码的简单实用方法 (1)
- 时间戳 (1)
- 字体 (1)
- 网络爬虫准 (1)
- 屏蔽后退按钮 (1)
- java web (1)
- JavaMail (1)
- windows服务 (1)
- Freemarker (1)
- TortoiseGit (2)
- oschina (1)
- JSON (1)
- Boost (1)
- MUI (1)
- github (1)
- Python2.7 (1)
- Python3.0 (1)
- Odoo (1)
- java socket (1)
- OpenERP (2)
- werkzeug (1)
- JNA (2)
- proxifier (1)
- WebService (1)
- 企业应用集成 (1)
- vmware (1)
- Navicate (1)
- 三体 (1)
- oracle同步 (1)
- 微信 (3)
- java设计模式 (1)
- 工具 (1)
- JavaScript跨域 (1)
- LB (1)
- 负载均衡 (1)
- AngularJS (1)
- HBuilder (1)
- Echarts (1)
- Json Web Token (1)
- PassportSDK (1)
- ubuntu kylin xterm 乱码 (1)
- ubuntu kylin17 安装字体教程 (1)
- wps (1)
- jetbrains (1)
- MySQL5.7 (1)
- Nginx (1)
- JDK (1)
最新评论
-
cuiyadll:
谢谢楼上的推荐
实战:jQuery Mobile开发HTML5移动应用 -
marty:
使用JQueryMobile,推薦使用這免費開發工具,提供可視 ...
实战:jQuery Mobile开发HTML5移动应用 -
men_clslji:
按照目前的方法只是防止刷新页面时不再执行X(添加),而toke ...
有了上一篇博文,类似地顺便说说表单防重复提交。
函数:原型
每一个构造函数都有一个属性叫做原型(prototype,下面都不再翻译,使用其原文)。这个属性非常有用:为一个特定类声明通用的变量或者函数。
prototype的定义
你不需要显式地声明一个prototype属性,因为在每一个构造函数中都有它的存在。你可以看看下面的例子:
Example PT1
CODE:
function Test()
{
}
alert(Test.prototype); // 输出 "Object"
给prototype添加属性
就如你在上面所看到的,prototype是一个对象,因此,你能够给它添加属性。你添加给prototype的属性将会成为使用这个构造函数创建的对象的通用属性。
例如,我下面有一个数据类型Fish,我想让所有的鱼都有这些属性:livesIn="water"和price=20;为了实现这个,我可以给构造函数Fish的prototype添加那些属性。
Example PT2
CODE:
function Fish(name, color)
{
this.name=name;
this.color=color;
}
Fish.prototype.livesIn="water";
Fish.prototype.price=20;
接下来让我们作几条鱼:
CODE:
var fish1=new Fish("mackarel", "gray");
var fish2=new Fish("goldfish", "orange");
var fish3=new Fish("salmon", "white");
再来看看鱼都有哪些属性:
CODE:
for (int i=1; i<=3; i++)
{
var fish=eval_r("fish"+i); // 我只是取得指向这条鱼的指针
alert(fish.name+","+fish.color+","+fish.livesIn+","+fish.price);
}
输出应该是:
CODE:
"mackarel, gray, water, 20"
"goldfish, orange, water, 20"
"salmon, white water, 20"
你看到所有的鱼都有属性livesIn和price,我们甚至都没有为每一条不同的鱼特别声明这些属性。这时因为当一个对象被创建时,这个构造函数 将会把它的属性prototype赋给新对象的内部属性__proto__。这个__proto__被这个对象用来查找它的属性。
你也可以通过prototype来给所有对象添加共用的函数。这有一个好处:你不需要每次在构造一个对象的时候创建并初始化这个函数。为了解释这一点,让我们重新来看Example DT9并使用prototype来重写它:
用prototype给对象添加函数
Example PT3
CODE:
function Employee(name, salary)
{
this.name=name;
this.salary=salary;
}
Employee.prototype.getSalary=function getSalaryFunction()
{
return this.salary;
}
Employee.prototype.addSalary=function addSalaryFunction(addition)
{
this.salary=this.salary+addition;
}
我们可以象通常那样创建对象:
CODE:
var boss1=new Employee("Joan", 200000);
var boss2=new Employee("Kim", 100000);
var boss3=new Employee("Sam", 150000);
并验证它:
CODE:
alert(boss1.getSalary()); // 输出 200000
alert(boss2.getSalary()); // 输出 100000
alert(boss3.getSalary()); // 输出 150000
这里有一个图示来说明prototype是如何工作的。这个对象的每一个实例(boss1, boss2, boss3)都有一个内部属性叫做__proto__,这个属性指向了它的构造器(Employee)的属性prototype。当你执行 getSalary或者addSalary的时候,这个对象会在它的__proto__找到并执行这个代码。注意这点:这里并没有代码的复制(和 Example DT8的图表作一下对比)。
js的Prototype属性 <wbr>解释及常用方法
http://blog.sina.com.cn/s/blog_7045cb9e0100rtoh.html
每一个构造函数都有一个属性叫做原型(prototype,下面都不再翻译,使用其原文)。这个属性非常有用:为一个特定类声明通用的变量或者函数。
prototype的定义
你不需要显式地声明一个prototype属性,因为在每一个构造函数中都有它的存在。你可以看看下面的例子:
Example PT1
CODE:
function Test()
{
}
alert(Test.prototype); // 输出 "Object"
给prototype添加属性
就如你在上面所看到的,prototype是一个对象,因此,你能够给它添加属性。你添加给prototype的属性将会成为使用这个构造函数创建的对象的通用属性。
例如,我下面有一个数据类型Fish,我想让所有的鱼都有这些属性:livesIn="water"和price=20;为了实现这个,我可以给构造函数Fish的prototype添加那些属性。
Example PT2
CODE:
function Fish(name, color)
{
this.name=name;
this.color=color;
}
Fish.prototype.livesIn="water";
Fish.prototype.price=20;
接下来让我们作几条鱼:
CODE:
var fish1=new Fish("mackarel", "gray");
var fish2=new Fish("goldfish", "orange");
var fish3=new Fish("salmon", "white");
再来看看鱼都有哪些属性:
CODE:
for (int i=1; i<=3; i++)
{
var fish=eval_r("fish"+i); // 我只是取得指向这条鱼的指针
alert(fish.name+","+fish.color+","+fish.livesIn+","+fish.price);
}
输出应该是:
CODE:
"mackarel, gray, water, 20"
"goldfish, orange, water, 20"
"salmon, white water, 20"
你看到所有的鱼都有属性livesIn和price,我们甚至都没有为每一条不同的鱼特别声明这些属性。这时因为当一个对象被创建时,这个构造函数 将会把它的属性prototype赋给新对象的内部属性__proto__。这个__proto__被这个对象用来查找它的属性。
你也可以通过prototype来给所有对象添加共用的函数。这有一个好处:你不需要每次在构造一个对象的时候创建并初始化这个函数。为了解释这一点,让我们重新来看Example DT9并使用prototype来重写它:
用prototype给对象添加函数
Example PT3
CODE:
function Employee(name, salary)
{
this.name=name;
this.salary=salary;
}
Employee.prototype.getSalary=function getSalaryFunction()
{
return this.salary;
}
Employee.prototype.addSalary=function addSalaryFunction(addition)
{
this.salary=this.salary+addition;
}
我们可以象通常那样创建对象:
CODE:
var boss1=new Employee("Joan", 200000);
var boss2=new Employee("Kim", 100000);
var boss3=new Employee("Sam", 150000);
并验证它:
CODE:
alert(boss1.getSalary()); // 输出 200000
alert(boss2.getSalary()); // 输出 100000
alert(boss3.getSalary()); // 输出 150000
这里有一个图示来说明prototype是如何工作的。这个对象的每一个实例(boss1, boss2, boss3)都有一个内部属性叫做__proto__,这个属性指向了它的构造器(Employee)的属性prototype。当你执行 getSalary或者addSalary的时候,这个对象会在它的__proto__找到并执行这个代码。注意这点:这里并没有代码的复制(和 Example DT8的图表作一下对比)。
js的Prototype属性 <wbr>解释及常用方法
http://blog.sina.com.cn/s/blog_7045cb9e0100rtoh.html
发表评论
-
JS引号的输出办法
2016-03-17 11:24 645你可以在 JavaScript 中使用反斜杠来向文本字符串 ... -
Office在线预览及PDF在线预览的实现方式大集合
2015-12-24 17:30 1026一、服务器先转换为P ... -
MyEclipse安装JS代码提示(Spket插件)
2015-11-09 15:39 790近期需要大量使用JS来开发,但是MyEclips ... -
利用HTML5的一个重要特性 —— DeviceOrientation来实现手机网站上的摇一摇功能
2014-07-10 19:34 729介绍:http://www.codesky.net/artic ... -
分享一个有趣的js代码(手机摇一摇切换网页背景色)
2014-07-10 19:32 913引用<script type="text/ja ... -
实战:jQuery Mobile开发HTML5移动应用
2014-04-16 14:56 1574引自:http://tech.it168.com/a201 ... -
几个功能强大的php函数
2014-02-07 13:32 760这些函数简单但是又非常重要,先收藏再说吧,你总有用得着的时候 ... -
JS之Window对象
2014-02-07 00:23 751一.说明:他是JS中最大的对象,它描述的是一个浏览器窗口,一般 ... -
jquery 中的 $(“#”) 与 js中的document.getElementById(“”)
2014-02-06 22:19 867以前没注意过,认为jquery 中的 $("#&qu ... -
js中setInterval与setTimeout用法
2014-02-06 13:06 659setTimeout 定义和用法: setTimeou ... -
弹出窗口(window.open)被各种浏览器拦截的通用处理方法
2013-08-27 15:56 974所有种类的浏览器基本都默认拦截弹出窗口,也就是说(window ...
相关推荐
你不需要显式地声明一个prototype属性,因为在每一个构造函数中都有它的存在。你可以看看下面的例子: Example PT1 代码如下:function Test(){}alert(Test.prototype); // 输出 “Object” 给prototype添加...
在JavaScript中,遍历属性、理解`prototype`和掌握...总结,遍历JavaScript对象的属性有多种方法,而`prototype`和继承机制是实现面向对象编程的关键。理解并熟练运用这些概念,将有助于编写更高效、更可维护的代码。
JavaScript中通过prototype属性共享属性和方法是一种面向对象编程中的常用技巧。它可以帮助我们实现代码的复用,并且让创建的每个实例都具有相同的属性和方法,提高代码的效率和维护性。 在JavaScript中,每一个...
### String对象常用的属性与方法 在JavaScript中,`String`对象是用于表示和操作文本的强大工具。它提供了许多内置的方法来帮助我们处理字符串数据。本文将详细介绍`String`对象的一些常用属性和方法,并通过示例...
### JavaScript编程常用函数属性及方法详解 #### 一、引言 JavaScript 是一种广泛应用于网页开发的脚本语言,能够实现动态效果、交互性以及数据处理等功能。掌握JavaScript中的核心对象及其属性和方法,对于提高...
`__proto__`指向原型对象,`Object.prototype`是所有对象的根原型,`prototype`属性常用于定义构造函数的原型方法。 9. **闭包和作用域**:闭包是JavaScript中一种强大的特性,它可以访问并操作外部函数的变量。...
本文将深入探讨四种常用的方法来识别和判断JavaScript中的数据类型:`typeof`、`instanceof`、`constructor`以及`prototype`。 ### 1. `typeof` `typeof`操作符是最常见的类型检测方式之一,它返回一个表示未经计算...
**JavaScript中常用的属性与方法** JavaScript提供了丰富的内置属性和方法,如: - `this`关键字:根据上下文引用当前对象。 - `prototype`:用于扩展对象的属性和方法。 - `Object.keys()`:返回对象的所有可枚举...
`$()`函数是Prototype中非常常用的一个函数,它实际上是对`document.getElementById()`方法的一个封装。该函数用于获取具有特定ID的DOM元素。与原生JavaScript相比,使用`$()`函数获取DOM元素更为方便。 **示例代码...
### JS常用方法知识点详解 #### 一、String.prototype.Replace 方法 **定义与功能:** `String.prototype.Replace` 是一个自定义扩展方法,用于全局替换字符串中的某个子串。该方法接受两个参数:`oldValue` 和 `...
2. **空间定位的常用函数**:Prototype.js提供了一系列方法,如`Element.extend`、`$(selector)`等,用于查找和操作DOM元素。这些函数极大地简化了页面元素的选择和操作,例如根据ID、类名或CSS选择器查找元素。 3....
在JavaScript编程中,原型(prototype)是一个非常重要的概念,它允许我们为对象定义共享的属性和方法。通过原型定义方法,可以带来一些明显的好处,主要体现在内存管理和代码组织上。 首先,原型为JavaScript中的...
接下来,我们将深入探讨如何通过`prototype`属性来实现继承,并解释所给定的“JavaScript中关于prototype属性实现继承的原理图”。 ### 了解JavaScript中的原型链 在JavaScript中,每个函数都有一个`prototype`...
本资源“javascript常用验证 常用操作方法(工具方法)”可能包含了一个名为`comm.js`的文件,这通常是一个通用的JavaScript工具库,封装了多种常见的验证和操作功能。下面将详细介绍JavaScript中的验证和操作方法。 ...
### JavaScript内置对象属性及方法详解 #### 一、概述 在JavaScript编程语言中,内置对象是预先定义的对象,包括它们的属性和方法。这些对象能够帮助开发者高效地完成各种任务,尤其是在Web端开发中,它们提供了...
JavaScript,简称JS,是一种广泛应用于Web开发的轻量级脚本语言。它的对象系统是其核心特性之一,提供了丰富的内置对象以及自定义对象的能力。在这个总结中,我们将深入探讨JavaScript中的常见对象及其重要属性和...
它还实现了基于原型的继承机制,允许对象继承其他对象的属性和方法,增强了JavaScript的面向对象能力。 3. **DOM操作**:Prototype提供了便捷的DOM(文档对象模型)操作接口,如`Element`和`$$`选择器,可以更简单...