js面向对象编程
主要介绍js面向对象编程涉及到的技术和知识,以及具体的方法和应用
xuexiaodong2009
主要从事C#编程,精通SQL,JS,jquery等技术,目前主要从事内部办公,微信企业号方面的应用
展开
-
js变量作用域--变量提升
js的变量和其他语言的变量作用域,有很多相同的地方,但也有很多不相同的地方。尤其是变量提升这个概念。之前还真没听说过这个概念。 先看具体的例子: function test2(){ alert(t); var t="123" alert(t); }按照之前的理解,第一个alert就应该出错。可是在谷歌浏览器已测试,没有错误。第一次弹出来的是undefined!!第二原创 2015-05-27 15:02:05 · 1907 阅读 · 1 评论 -
js面向对象编程:数据的缓存
js也可以通过缓存数据,来加快处理速度。在必要的时候使用空间还换取时间还是值得的。例如需要很长时间才能完成的计算,就可以把计算结果缓存到客户端,以后就可以直接使用缓存的计算结果,不在重复计算。1简单函数的计算结果的缓存 2递归函数的计算结果的缓存 3Ajax读取数据的缓存1简单函数的计算结果的缓存例如: //共用函数,封装内部调用,缓存计算结果 fu原创 2014-08-01 13:10:13 · 2255 阅读 · 0 评论 -
js面向对象编程:如何检测对象类型
在js中检测对象类型主要有三种,typeof,instanceof,constructor,这几种都可以检测对象的类型,但又有一定的区别。另外还可以使用jQuery来检测类型原创 2014-07-14 11:09:39 · 3248 阅读 · 0 评论 -
js面向对象编程:if中可以使用那些作为判断条件呢?
在所有编程语言中if是最长用的判断之一,但在js中到底哪些东西可以在if中式作为判断表达式呢? 例如如何几行,只是少了一个括号,真假就完全不同,到底表示什么含义呢 var obj={}; obj.Funtext=function(){}; if(obj.Funtext) { alert("true obj.Fu原创 2014-07-07 08:52:27 · 4037 阅读 · 0 评论 -
js面向对象编程:this到底代表什么?第二篇
总认为自己弄明白了js中this的含义,this总是指向调用方法的对象,作为方法调用,那么this就是指实例化的对象。但前几天自己写脚本却遇到了一个很奇怪的问题。 代码如下: //内部对象AutoCompleteInner function AutoCompleteInner(transformResultInner) { if(transfo原创 2014-07-01 14:15:15 · 1721 阅读 · 0 评论 -
js面向对象编程:命名空间
在其他语言中为了避免类和方法重名问题,都有一个类似命名空间的概念,在js中实现类似的功能吗?原创 2014-07-01 13:46:55 · 1702 阅读 · 0 评论 -
js面向对象编程:如何定义常量?
js中有一个关键字const,但目前的浏览器似乎还不支持,如果一定要定义一些常量,其实可以使用闭包,匿名函数实现常量的定义。例如:var Class = (function() { var UPPER_BOUND = 100;//定义了常量 var Test={}; // 定义了一个静态方法 获取常量的方法 Test.getUPPER_BOUND=function() {原创 2014-07-01 13:45:27 · 6209 阅读 · 0 评论 -
js面向对象编程:如何实现方法重载
js中如何实现方法重载?这涉及到三个问题1同名函数的调用问题2函数中特殊的参数arguments3如何利用arguments实现方法重载原创 2014-07-01 13:43:29 · 3346 阅读 · 0 评论 -
js面向对象编程:两个小括号的使用
在查看很多jQuery的过程中,经常遇到两个小括号的情况。例如: (function() { alert("测试1"); })(); (function() { alert("测试3"); }()); 其实这段代码,就是定义了一个匿名函数,并且进行了调用,相当于如下几行代码:(function ListCommon2(原创 2014-06-13 10:05:56 · 2565 阅读 · 0 评论 -
js面向对象编程:this到底代表什么?
在js中this的用法很让人迷惑,有些像Java或者C#中的this,但又不完全一样。按照流行的说法this总是指向调用方法的对象。 1、纯粹函数调用。 function ListCommon2(x) { this.x=x; alert("this 是 ListCommon2"+(this instanceof ListCommon2)); alert原创 2014-06-12 09:01:59 · 2754 阅读 · 0 评论 -
js面向对象编程,如何定义属性字段?
都知道js变量有作用域的概念,因此可以使用这个特性定义私有字段,私有字段的初始化主要是通过构造函数。原创 2014-06-11 09:02:27 · 2859 阅读 · 0 评论 -
js面向对象编程: js类定义函数时prototype和this区别?
在面向对象编写js脚本时,定义实例方法主要有两种如下: function ListCommon2(afirst) { var first=afirst; this.do1=function () { alert("first do"+first); } } ListCommon2.prototy原创 2014-06-10 08:56:37 · 2071 阅读 · 0 评论 -
js面向对象编程: js类定义函数时用不用prototype的区别?
一直在使用js编写自以为是面向对象的方法,遇到一个问题,就是定义一个方法,如下: function ListCommon2(first,second,third) { this.First=function () { alert("first do"+first); } } ListCommon2.do原创 2014-06-09 14:46:42 · 1987 阅读 · 0 评论 -
js面向对象编程,单例模式的一个例子
/* DataParser singleton, converts character delimited strings into arrays. */ /* Now using true private methods. */GiantCorp.DataParser = (function() { // 私有属性 var whitespaceRegex = /\s+/;原创 2014-06-05 14:15:54 · 2161 阅读 · 0 评论 -
js面向对象编程,一个完整原型的继承例子
/* 基类*/var Person = { name: 'default name', getName: function() { return this.name; }};公共方法function clone(object) { function F() {} F.prototype = object; return new F;}原创 2014-04-02 09:30:03 · 1982 阅读 · 0 评论 -
js面向对象编程,一个完整的继承例子
父类function Person(name) { this.name = name;}Person.prototype.getName = function() { return this.name;}公共方法:function extend(subClass, superClass) { var F = function() {}; F.prototype原创 2014-04-02 09:29:25 · 2125 阅读 · 0 评论 -
js面向对象编程,一个具有各种方法,字段 完整的类
var Book = (function() { // 私有静态成员变量 var numOfBooks = 0; // 私有静态成员方法 function checkIsbn(isbn) { ... } // Return the constructor. return function(newIsbn, newTitle, newAutho原创 2014-04-02 09:28:57 · 1966 阅读 · 0 评论 -
js面向对象编程,定义接口
// Constructor.var Interface = function(name, methods) { if(arguments.length != 2) { throw new Error("Interface constructor called with " + arguments.length + "arguments, but e原创 2014-03-12 15:17:29 · 2650 阅读 · 1 评论 -
js面向对象编程,定义类的四种方法
第一种定义类的方法:/* Anim class. */var Anim = function() { ...};Anim.prototype.start = function() { ...};Anim.prototype.stop = function() { ...};/* Usage. */var myAnim = new Anim();myAnim.原创 2014-03-12 14:41:32 · 2399 阅读 · 1 评论