文档章节

理顺 JavaScript (16) - 使用 prototype

涂孟超
 涂孟超
发布于 2014/09/26 15:34
字数 270
阅读 11
收藏 0
点赞 0
评论 0

给对象增减方法
function Rect(w, h) {
  this.width = w;
  this.height = h;
}

var r = new Rect(2, 3);

/* 给 r 对象增加一个计算面积的方法 area() */
r.area = function() {return this.width * this.height};

alert(r.width);  //2
alert(r.height); //3
alert(r.area()); //6

delete r.area; //删除刚刚增加的方法
alert(r.area); //undefined

 
 
 
 
 

 

 

  

给类增减方法
function Rect(w, h) {
  this.width = w;
  this.height = h;
}

var r = new Rect(2, 3);

/* 给 r 对象所属的类增加一个计算面积的方法 area() */
Rect.prototype.area = function() {return this.width * this.height};

alert(r.width);  //2
alert(r.height); //3
alert(r.area()); //6

/* 给类(而不是对象)增加的方法会影响到旗下所有对象 */
var r2 = new Rect(4, 5);
alert(r2.width);  //4
alert(r2.height); //5
alert(r2.area()); //20

delete Rect.prototype.area; //删除刚刚给类增加的方法
alert(r.area);              //undefined

 
 
 
 
 

 

 

  

给其他类增加方法
/* 给 Array 增加一个倒排序的方法 */
Array.prototype.usort = function() {this.sort(); this.reverse()}; //该函数写得太凑合了

var arr = new Array(1,3,2,4,3,5);
arr.sort();
alert(arr); //1,2,3,3,4,5
arr.usort();
alert(arr); //5,4,3,3,2,1

/* 假如给 Object 增加一个方法 */
Object.prototype.msg = function() {alert('我无处不在!');}

var obj = {};
obj.msg(); //我无处不在!

var arr = [];
arr.msg(); //我无处不在!

var str = '';
str.msg(); //我无处不在!

 
 
 
 
 

 

 

  

本文转载自:http://www.cnblogs.com/del/archive/2009/03/04/1402884.html

共有 人打赏支持
涂孟超
粉丝 12
博文 2011
码字总数 14107
作品 0
深圳
程序员
五种方法解决jQuery和Prototype兼容性

第一种情况:先加载Prototype,再加载jQuery 方法一:jQuery 库和它的所有插件都是在jQuery名字空间内的,包括全局变量也是保存在jQuery 名字空间内的。 使用jQuery.noConflict();主要作用是...

zhengguogaun
2013/06/19
0
0
了解javascript编程中的Prototype(原型)

日期:2012-5-16 来源:GBin1.com 当你定义javascript方法的时候,会产生一些预定义的属性,其中一个比较让人迷惑的属性就是prototype。在本文中,我们将详细介绍什么是Prototype,并且为什么...

gbin1
2012/05/22
0
0
jQuery命名冲突解决的五种方案

引言: 最近遇到个问题,同时引用了jquery库和另外一个js库。当用$XX去调用js库函数时,发现失效了!于是找资料,原来是jquery命名冲突了。因为许多JavaScript 库使用$作为函数或变量名,jqu...

龙上
2012/03/30
0
0
美国主流网站所使用的JavaScript框架

作者:Pingdom时间:2008-10-04来自:翻译技术等级: 哪些JavaScript框架是最常见,使用最频繁的? 要回答这个问题,我们对大约200个美国主流网站进行了调研,检查他们是否使用了JavaScript框...

晨曦之光
2012/03/09
0
0
js prototype的理解

prototype属性可算是JavaScript与其他面向对象语言的一大不同之处。prototype就是“一个给类的对象添加方法的方法”,使用prototype属性,可以给类动态地添加方法,以便在JavaScript中实现“...

别人说我名字很长
2014/05/15
0
0
JavaScript继承详解(二)

文章截图 - 更好的排版 这一章我们将会重点介绍JavaScript中几个重要的属性(this、constructor、prototype), 这些属性对于我们理解如何实现JavaScript中的类和继承起着至关重要的作用。 ...

solu
2010/12/22
0
0
5个典型的JavaScript面试题(上)

本文由伯乐在线 -XfLoops 翻译,黄利民 校稿。未经许可,禁止转载! 英文出处: Aurelio De Rosa。欢迎加入 翻译组。 IT 行业对JavaScript开发者有着很大的需求。如果你具备这种角色所需的知...

伯乐在线
2014/12/04
0
0
js中的prototype和构造函数

js中没有类的感念,继承也是通过原型链来实现的对象的继承而不是类的继承 Vjeux写的这篇文章应该能帮助我们更好的理解js中原型的工作方式:http://blog.vjeux.com/2011/javascript/how-proto...

leo-H
2013/04/08
0
0
三种简单写法教你Javascript对象封装

这里的内容没有太多深入的东西,更多的内容请移步麦子学院。 Javascript在HTML中变得越来越强大, HTML5中的WebGL等。但是我们书写Javascript的时候往往很随意,使用对象的封装是极好的。这里...

yexiaobo1990
2015/07/23
0
0
JS的prototype和__proto__

proto是JS内部使用寻找原型链的属性。 prototype是显示修改对象的原型的属性。 这两句很重要,以下我会详细说明,此文章就是为了说明上面的两句话的含义。 var Programmer = function(){}; P...

i33
2012/11/23
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

expect脚本同步文件、expect脚本指定host和要同步的文件、构建文件分发系统

expect脚本同步文件 更改权限 执行脚本 查看执行结果 expect eof需要加上,作用是等脚本命令执行完再进行退出 expect脚本指定host和要同步的文件 更改权限,执行脚本 构建文件分发系统 需求背...

Zhouliang6
39分钟前
1
0
Hive应用:外部分区表

Hive应用:外部分区表 介绍 Hive可以创建外部分区表。创建表的时候,分区要在建表语句中体现。建完之后,你不会在表中看到数据,需要进行分区添加,使用alter语句进行添加。然后数据才会显示...

星汉
49分钟前
3
0
点击Enter登录

1. 效果 2. 实现过程(记得引入jq文件) //6.回车事件 登录 $(function() { document.onkeydown = function(event) { var e = event || window.event || arguments.callee.caller.arguments......

Lucky_Me
54分钟前
1
0
点击菜单内容切换

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> .menu{ height: 38px; background-color: #eeeeee; line-height: 38px; } .mao{ ......

南桥北木
今天
1
0
OSChina 周六乱弹 —— 妹子和游戏哪个更好玩

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @andonny :分享唐朝乐队的单曲《国际歌》 《国际歌》- 唐朝乐队 手机党少年们想听歌,请使劲儿戳(这里) @举个栗子- :日常祈雨 邪恶的大祭...

小小编辑
今天
572
6
流利阅读笔记32-20180721待学习

“人工智能”造假:只有人工,没有智能 Lala 2018-07-21 1.今日导读 当今社会,擅长单个方面的人工智能已经盛行,手机借助 AI 智慧防抖技术帮助大家拍出清晰照片,谷歌研发的 AI 助手将可以帮...

aibinxiao
今天
8
0
我的成长记录(一)

今天突然精神抖擞,在我的博客下新开一项分类>成长记录,专门记录每隔一段时间我的一点感悟吧。因为今天才专门花时间新开这样一个分类,所以以前有过的一些感悟没有记录下来,现在已经想不起...

dtqq
今天
1
0
机器学习管理平台 MLFlow

最近工作很忙,博客一直都没有更新。抽时间给大家介绍一下Databrick开源的机器学习管理平台-MLFlow。 谈起Databrick,相信即使是不熟悉机器学习和大数据的工程湿们也都有所了解,它由Spark的...

naughty
今天
17
0
idea tomcat 远程调试

tomcat 配置 编辑文件${tomcat_home}/bin/catalina.sh,在文件开头添加如下代码。    CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=7829" Idea端配......

qwfys
今天
2
0
遍历目录下的文件每250M打包一个文件

#!/usr/bin/env python # -*- utf-8 -*- # @Time : 2018/7/20 0020 下午 10:16 # @Author : 陈元 # @Email : abcmeabc@163.com # @file : tarFile.py import os import tarfile import thr......

寻爱的小草
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部