js方法和prototype
JS中的方法可以分为三类
1、对象方法
2、类方法
3、原型方法
例:
function People(name)
{
this.name=name;
//对象方法
this.Introduce=function(){
alert("My name is "+this.name);
}
}
//类方法
People.Run=function(){
alert("I can run");
}
//原型方法
People.prototype.IntroduceChinese=function(){
alert("我的名字是"+this.name);
} //测试 var p1=new People("Windking"); p1.Introduce(); People.Run(); p1.IntroduceChinese();
javascript中的每个对象都有prototype属性,Javascript中对象的prototype属性的解释是:返回对象类型原型的引用。
A.prototype = new B();
理解prototype不应把它和继承混淆。A的prototype为B的一个实例,可以理解A将B中的方法和属性全部克隆了一遍。A能使用B的方法和属性。这里强调的是克隆而不是继承。可以出现这种情况:A的prototype是B的实例,同时B的prototype也是A的实例。
function A(){
this.name="lee";
}
A.prototype.run=function(){
return "123"
}
function B(){
}
B.prototype= new A();
var objB = new B()
console.log(objB.name)
B拥有A的所有属性和方法。
但是如果B有和A同样的方法
function A(){
this.name="lee";
}
A.prototype.run=function(){
return this.name;
}
function B(){
this.name="JACK";
}
B.prototype.run=function(){
return this.name;
}
B.prototype= new A();
var objB = new B()
console.log(objB.run())
结果是 :JACK
函数运行时会先去本体的函数中去找,如果找到则运行,找不到则去prototype中寻找函数。或者可以理解为prototype不会克隆同名函数。
js方法和prototype的更多相关文章
- javascript当中静态方法和prototype用法
6)静态方法和prototype(难) 例 3.6.1 <head> <meta http-equiv="content-type" content=&qu ...
- 安卓端调用h5界面js方法和ios端调用h5界面js方法
备注:本人为h5开发人员,不懂安卓和ios,这是开发小伙伴对接联调的主代码. 1.iOS端调用h5界面js方法: 2.安卓端调用h5界面js方法: @Override protect ...
- 原生js中slice()方法和splice()区别
slice()方法和splice()方法都是原生js中对数组操作的方法. slice(),返回一个新的数组,该方法可从已有的数组中返回选定的元素.例如:arrObject(start,end),sta ...
- js进阶 14-4 $.get()方法和$.post()方法如何使用
js进阶 14-4 $.get()方法和$.post()方法如何使用 一.总结 一句话总结:$.get(URL,callback); $.post(URL,data,callback); callba ...
- js进阶 12-13 jquery中one方法和trigger方法如何使用
js进阶 12-13 jquery中one方法和trigger方法如何使用 一.总结 一句话总结: 1.one()方法和on()方法的区别是什么? 除了one()只执行一次,其它和on()一模一样,包 ...
- js中的splice方法和slice方法简单总结
slice:是截取用的 splice:是做删除 插入 替换用的 slice(start,end): 参数: start:开始位置的索引 end:结束位置的索引(但不包含该索引位置的元素) 例如: va ...
- 【js】数组的splice方法和slice方法的区别
1.splice方法和slice都是数组的方法 2.splice方法有3种作用 例如,arr=[1,2,3,4,5,6]; splice方法 删除 arr.splice(1, 1); 返回值为删除的 ...
- JS中的call()方法和apply()方法用法总结
原文引自:https://blog.csdn.net/ganyingxie123456/article/details/70855586 最近又遇到了JacvaScript中的call()方法和app ...
- 关于JS中的call()方法和apply() 暂时只接触到call() 等接触到apply()再回头来看
1. 每个函数都包含两个非继承而来的方法:call()方法和apply()方法. 2. 相同点:这两个方法的作用是一样的. 都是在特定的作用域中调用函数,等于设置函数体内this对象的值,以扩充函数赖 ...
随机推荐
- Checklist For Choosing The Right Database Engine
http://sqlite.org/whentouse.html Appropriate Uses For SQLite SQLite is not directly comparable to cl ...
- PureBasic 集成Form设计器的使用
The PureBasic IDE has a very powerful integrated form designer, which allows to design easily window ...
- 安装faac编译问题
mpeg4ip.h:126: error: new declaration ‘char* strcasestr(const char*, const char*)’分类: Linux开发相关 2012 ...
- backbone 更新1.1.2
backbone已经更新到1.1.2,在这里总结一下 我还一直用的1.0的版本,更新确实出现了一些问题 1.1.0 Backbone Views no longer automatically at ...
- ArcGIS Engine开发之旅07---文件地理数据库、个人地理数据库和 ArcSDE 地理数据库中的栅格存储加以比较 、打开栅格数据
原文:ArcGIS Engine开发之旅07---文件地理数据库.个人地理数据库和 ArcSDE 地理数据库中的栅格存储加以比较 .打开栅格数据 对文件地理数据库.个人地理数据库和 ArcSDE 地理 ...
- 配置 android环境
1.如上图,下载最新adt-bundle: http://developer.android.com/sdk/index.html 里面集成了 eclipse,SDK,SDK Manager. 2 ...
- sql server 2008查询窗口怎么显示行数
工具->选项
- 打造安全的App!iOS安全系列之 HTTPS
如何打造一个安全的App?这是每一个移动开发者必须面对的问题.在移动App开发领域,开发工程师对于安全方面的考虑普遍比较欠缺,而由于iOS平台的封闭性,遭遇到的安全问题相比于Android来说要少得多 ...
- LeetCode Shortest Palindrome
原题链接在这里:https://leetcode.com/problems/shortest-palindrome/ 题目: Given a string S, you are allowed to ...
- 执行shell脚本的几种方法及区别
执行shell脚本的几种方法及区别 http://blog.csdn.net/lanxinju/article/details/6032368 (认真看) 注意:如果涉及到脚本之间的调用一定要用 . ...