关于javascript中静态成员和实例成员的详细解释
关于javascript中静态成员和实例成员的详细解释
在我们了解什么是静态成员和实例成员之前,我们首先来了解一下什么是实例?
实例就是由构造函数创建出来的对象。
例如案例中 p 就是实例:
function Person() {}// 此函数为构造函数
var p=new Person(); // p为构造函数创建出来的对象
我们在讨论静态成员和实例成员时候,把函数当成构造函数, 把创建出来的对象称之为实例。在此明白了什么是实例,下面我们就可以说什么是静态 成员和实例成员了。
首先什么是实例成员?
实例成员:由构造函数创建出来的对象能直接访问的属性和方法,包括:对象本身 以及原型中的所有的属性和方法。
案例如下: function Person(name, age) {
this.name = name;
this.age = age;
}
Person.prototype.sayHi = function() {
console.log("hello, rose");
};
var p = new Person("jack", 19);
( p.name p.age p.sayHi) 括号内三个就是实例成员了。
再次什么是静态成员?
静态成员:由构造函数直接访问到的属性和方法。大家注意是直接访问的属性和方法,间接获取就不是了。
案例如下: function Person(name, age) {
this.name = name;
this.age = age;
}
var p = new Person("jack", 19);
Person.say = function() { alert("这是静态方法"); };
Person.say 就是静态成员
Person.length 也是静态成员,因为length是函数中的 方法,是来直接获取函数中形参的个数。
接下来会有人问,在实际工作中有什么用?我个人认为工作中用到的机会不多,有人会说工作中既然用的不多, 干嘛还废那么话来说,但是对于我们看Jquery源码是有用处的。
jQuery 的 each方法就是给静态成员实现这个方法,然后实例成员直接调用这个方法(大多数框架中都是使用该方法) 。
所有有了两种使用方式:
$.each("div",function(){})
$("div").each(function(){})
最新文章
- Tomcat内存溢出的三种情况及解决办法分析
- java集合类深入分析之Queue篇
- Meteor + node-imap(nodejs) + mailparser(nodejs) 实现完整收发邮件
- IOS 2D游戏开发框架 SpriteKit-->;续(完善角色功能)
- 函数动态参数实现format
- 想在Images.xcassets 只能用 imageNamed 加载里边的素材 其他方法 你就别费老劲了
- 记录sqoop同步失败问题解决过程,过程真的是很崎岖。(1月6日解决)
- Android小案例——简单图片浏览器
- 【转】深受开发者喜爱的10大Core Data工具和开源库
- [Javascript] Immute Object
- Java基础知识强化之集合框架笔记55:Map集合之HashMap集合(HashMap<;Integer,String>;)的案例
- CATransform3DRotate 实现左右,上下翻转效果
- Codeforces 56D Changing a String
- 线段树练习 codevs 1080
- 使用Cloudsim实现基于多维QoS的资源调度算法之中的一个:配置Cloudsim环境
- 文件翻译002片:Process Monitor帮助文档(Part 2)
- txt文件的读取
- 读书笔记 effective c++ Item 29 为异常安全的代码而努力
- [leetcode-604-Design Compressed String Iterator]
- spring的基本使用