随笔分类 - JavaScript
摘要:继:http://www.cnblogs.com/hongdada/p/3328089.htmlnew function(){}function(){}():大概的总结:function(){}中有两个对象一个是function()的实例化,这个肯定类型是object的,称为"实例化对象".一个是return的对象,称为“返回对象".当function()内部没有return时,那么返回对象=实例化对象。当new function(){}时,如果返回对象存在,并且类型是object,那么就返回返回对象,反之就返回实例化对象。当function(){}()时,这是个
阅读全文
摘要:new初始化方法简单没有return的就不写了 function Person() { this.name="hongda"; this.age=28; return "fffffff"; } var p = new Person(); console.dir(p); console.log(typeof p); var pp=Person(); console.log(pp); console.log(typeof pp); fun...
阅读全文
摘要:filter或者forEach函数,可能是因为你的浏览器还不够新,暂时不支持新标准的函数,你可以使用如下方式自己定义:if (!Array.prototype.forEach) { Array.prototype.forEach = function (fn, thisObj) { ...
阅读全文
摘要:例:function ConcreteClass() { this.performTask = function () { this.preTask(); console.log('doing something'); this.postTask();...
阅读全文
摘要:1.function的静态变量 2.重写function的构造函数(其实就是把function覆盖) 3.封装 var Universe; (function () { var instance; Universe = function () { if (instance) { return instance; } instance = this; this.nam...
阅读全文
摘要:1.function a() { console.log(this);}a.call(null);window如果第一个参数传入的对象调用者是null或者undefined的话,call方法将把全局对象(也就是window)作为this的值。所以,不管你什么时候传入null,其this都是全局...
阅读全文
摘要:eval的基础用法是:执行字符串形式的JavaScript表达式或语句,并返回结果(如果有) eval函数返回值如果没有参数,返回undefined如果有返回值将返回此值,否则返回undefined如果为表达式,返回表达式的值如果为语句返回语句的值如果为多条语句或表达式返回最后一条语句的值var json=eval("({sitename:'dreamdu',sitedate:new Date(1980, 12, 17, 12, 0, 0)})");document.write(json.sitename);document.write(json.sited
阅读全文
摘要:caller是function的属性callee是arguments的属性callee:返回正在执行的函数对象。var sum = function (n) { if (1 == n) return 1; else return n + sum(n - 1); } console.log(sum(100)); var sum = function (n) { if (1 == n) return 1; else return n + arguments.callee(n - 1)...
阅读全文
摘要:1.变量 var x = 10; Object.prototype.y = 20; var w = 33; console.log(x); console.log(y); (function () { var x=100; var y = 30; w=44; console.log(x); console.log(window.x); console.log(y); console.log(w); ...
阅读全文
摘要:网上的:String.prototype.replaceAll = function(str1, str2) { var str = this; var result = str.replace(eval("/" + str1 + "/gi"), str2); return result;}String.prototype.replaceAll = function(reallyDo, replaceWith, ignoreCase) { if (!RegExp.prototype.isPrototypeOf(reallyDo)) { return th
阅读全文
摘要:代码: 问题:界面:html代码:开始看以为是继承,类似简单工厂模式其实是调用http://www.cnblogs.com/TomXu/archive/2012/01/09/2306329.html
阅读全文
摘要:1.var// 反例myname = "global"; // 全局变量function func() { alert(myname); // "undefined" var myname = "local"; alert(myname); // "local"}func();JavaScript中,你可以在函数的任何位置声明多个var语句,并且它们就好像是在函数顶部声明一样发挥作用,这种行为称为 hoisting(悬置/置顶解析/预解析)。Function console.log(fun); var fun=fu
阅读全文
摘要:1.var 变量 有局部变量与全局变量同名,在方法内优先使用局部变量 可以看出在方法中对全局变量进行了修改 在这里a没有var修饰,它是隐式的全局变量在这里要注意var的声明,在方法内部不管在什么地方声明,都跟它们在函数的顶部声明一样 function fun() { var a = b = c = 0; //这样错误,b,c都是隐式的全局变量了 var aa, bb, cc = "hongda", dd = 10; //这样是好的 }查看全局变量与隐式全局变量 在技术上,隐...
阅读全文
摘要:看例子 <script type="text/javascript"> var f = function () { name = 'hongda'; age = 27; say = function () { console.log(this.name + "||" + this.age); } } var method = function () { name = 'hongda2'; ag...
阅读全文
摘要:抽象类<script language="JavaScript" type="text/javascript"> < !-- //定义extend方法 Object.extend = function(destination, source) { for (property in source) { destination[property] = source[property]; } return destination; } Object.prototype.extend = function(o...
阅读全文
摘要:注意事项:1.如果给某个对象的类型的原型添加了某个名为 a 的属性,而这个对象本身又有一个名为a 的同名属性,则在访问这个对象的属性a 时,对象本身的属性“覆盖”了型属性,但是原型属性并没有消失,当你用delete 运算符将对象本身的属性a 删除时,对象的原型属性就恢复了可见性。利用这个特性,可以为对象的属性设定默认值。 function Person(name) { this.name = name; this.sayName = function () { alert("我的名字:" + name); ...
阅读全文
摘要:可以看出father没有prototype属性,Person有 按照javascript的说法,function定义的这个Person就是一个Object(对象),而且还是一个很特殊的对象,这个使用function定义的对象与使用new操作符生成的对象之间有一个重要的区别。这个区别就是functio
阅读全文
摘要:网上说:小括号能把我们的表达式组合分块,并且每一块,也就是每一对小括号,都有一个返回值。这个返回值实际上也就是小括号中表达式的返回值。 所以,当我们用一对小括号把匿名函数括起来的时候,实际上小括号对返回的,就是一个匿名函数的Function对象。 因此,小括号对加上匿名函数就如同有名字的函数般被我们
阅读全文
摘要:function Person(name) { this.name = name; this.showMe = function () { alert(this.name); } }; Person.prototype.from = function () { alert('I come from prototype.'); } Person.prototype.school = "nanjing"; va...
阅读全文
摘要:在JavaScript中,每个对象可以看作是多个属性(方法)的集合,引用一个属性(方法)很简单,即:对象名.属性(方法)名除此之外,还可以用方括号的形式来引用:对象名[“属性(方法)名”]注意,这里的方法名和属性名是一个字符串,而非原先点号后面的标识符var arr=new Array();//为数组添加一个元素arr[“push”](“abc”);//获得数组的长度var len=arr[“length”];//输出数组的长度alert(len);等效于var arr=new Array();//为数组添加一个元素arr.push( “abc”);//获得数组的长度var len=arr.l
阅读全文