var a ='1&2';
alert(typeof a);//string
alert(a instanceof String);//false
alert(a.split('&')[0])//1
alert(a.split('&')[1])//2
alert(a.length);
var b = new String();
alert(typeof b);//object
alert(b instanceof String);//true
var c = '111';
alert(typeof Number(c));//强行转换
alert(typeof parseInt(c));
function A(){
}
A.c = 'aa';
A.prototype.color = "ss";
alert(A.hasOwnProperty("prototype"));//true
alert(A.hasOwnProperty("constructor"));//false
alert(A.hasOwnProperty("c"));//true
alert(A.constructor);//native code
var func=new function(){this.a="func"}
var myfunc=function(x){
var a="myfunc";
alert(this.a);
alert(x);
}
myfunc.call(func,"var");
call 就是劫持对象,说明白一点其实就是更改对象的内部指针,即改变对象的this指向的内容。
var func=new function(){this.a="func"}
这样写是完全正确的,等同于
function f(){this.a="func"}
var func=new f();
只是用了匿名函数而已
var a = function(){this.a = 'a'} alert(a.a)//错误
var a = new function(){this.a = 'a'}alert(a.a)//正确
var _st = window.setTimeout;
window.setTimeout = function(fRef, mDelay) {
if(typeof fRef == 'function'){
var argu = Array.prototype.slice.call(arguments,2);
var f = (function(){ fRef.apply(null, argu); });
return _st(f, mDelay);
}
return _st(fRef,mDelay);
}
function test(x){
alert(x);
}
window.setTimeout(test,1000,'fason');
</script>
call方法JScript参考中的说明:调用一个对象的一个方法,以另一个对象替换当前对象。call([thisObj[,arg1[, arg2[, [,.argN]]]]]),但是没有示例
apply方法JScript参考中的说明:应用某一对象的一个方法,用另一个对象替换当前对象。apply([thisObj[,argArray]])
实际上这两个的作用几乎是相同的,要注意的地方是call(thisObj[,arg1[, arg2[,)中的arg参数可以是变量,而apply([thisObj[,argArray]])中的参数为数组集合。
今早又看到一篇利用call实现继承的例子.呵呵..也一并贴出来.这个例子比较简单.就算是由浅入深吧
<script language="javascript" type="text/javascript">
function father(){//父类
var self=this; //私有变量,子类里不会继承!
var var_private="private variable"; //私有变量
this.var_public="public variable"; //公有变量
this.author="xling";
this.test=function(msg){ //公有方法
alert("该方法位于父类 :" + msg + "\n" + self.author);
}
var test2=function(){ //私有方法,子类不能调用
alert("这个方法是父类的私有方法");
}
}
function father2(){
this.email="xlingFairy#hotmail.com";
}
function suber(){//子类
father.call(this);//通过这一句来继承父类(father)类的可见变量及方法(this)
}
function sun(){
suber.call(this);
father2.call(this);//和上面的一句放在一起,實現多重繼承!爽啊!
}
var mySuber=new suber();
mySuber.test("参数是从子类的实例里传入的");
//mySuber.test2(); //这一句会发生错误码,因为test2是父类的私有类
alert("父类的私有变量,子类不能读取:" + mySuber.var_private);
alert("父类的公有变量,子类可以读取" + mySuber.var_public);
var mySun=new sun();
mySun.test("这个是从孙子级的实例里传入的参数");
alert("父类的私有变量,子类不能读取:" + mySun.var_private);
alert("父类的公有变量,子类可以读取" + mySun.var_public);
alert(mySun.email);
VAR 加不加还是有区别的 不加时全局变量 加有时候是局部变量
function aa(){
a = '11';
alert(a);
}
aa();
alert(a)//正常 因为是全局变量
function aa(){
var a = '11';
alert(a);
}
aa();
alert(a)//失败 因为是局部变量
Ext.DomHelper = function(){}();
已经是对象了 不需要NEW FUNCTION
var DomainList = new function() {}();
不是对象只是变量 需要NEW FUNCTION
var aa = new function(){
alert(11);
}()
aa = {}
aa = function(){
alert(11);
}();
var bb = {}等价于 var bb = new Object()
{}里不能定义VAR 变量
NEW FUNCTION(){}里可以
aa = new function(){
var c = 'cc';//私有变量
d = 'dd';//等于于这个对象完全无关 是全局变量 完全破坏了封装
this.d = 'dd'//共有变量
}
单例:
Foo = function(){
return {
init : function(){}
}
}();
需要new Foo
改成
Foo = (function(){
return {
init : function(){}
}
})();
就不需要new了
分享到:
相关推荐
JavaScript是一种广泛应用于Web开发的脚本语言,主要由三部分组成:ECMAScript标准、浏览器对象模型(BOM)和文档对象模型(DOM)。ECMAScript定义了JavaScript的基础语法和核心功能,BOM则提供了与浏览器交互的接口,...
在这个主题中,我们将深入探讨JavaScript的一些基础知识,包括数据类型、数据转换、比较运算符以及变量声明。 首先,JavaScript支持多种数据类型,如表6-1所示: 1. String:字符串,用引号(单引号或双引号)包围...
由于没有具体的描述,我们只能根据常见的日历控件功能和JavaScript编程的常识来探讨相关知识点。 1. **JavaScript基础**:首先,你需要了解JavaScript的基础语法,包括变量声明、函数、条件语句、循环以及DOM操作等...
通过本次实验,掌握了利用 table、div 和 css 对网页布局的方法,了解了 JavaScript 常识,理解了 XML 文件结构,掌握了 XML 文件建立的方法。 心得体会: 通过本次实验,掌握了 ASP.NET 3.5 网站开发的基础知识,...
该项目是一款集灾害常识问答、灾害信息反馈和恶劣天气提醒功能于一体的鸿蒙App设计源码。该源码包含140个文件,其中包含35个PNG图片文件、26个JavaScript文件、20个CSS文件、20个HML文件、13个Java文件、9个JSON文件...
JavaScript是Web开发中不可或缺的一部分,尤其对于初学者来说,掌握其基本知识是非常重要的。本文将深入探讨JavaScript的基础,包括数据类型、数据类型转换以及比较运算符。 首先,我们来看看JavaScript中的基本...
在本项目"html5+JavaScript+css+mysql实现的基于thinkphp的医学常识的介绍平台设计与实现"中,开发者采用了一系列技术构建了一个用于分享和学习医学常识的在线平台。这个平台利用现代Web技术,旨在提供一个交互性强...
JS和CSS教程 里面内容分别是: ASP编程.chm javascript(1).chm Javascript.CHM javascript中文帮助.chm JavaScript宝典.chm Javascript语言参考大全.CHM VBA帮助.doc VBScript 速查手册.chm 个人服务器架设...
JavaScript之所以被称为脚本语言,是因为它通常没有一个独立的执行环境,必须依赖于宿主环境(如浏览器或Node.js)来解析执行。它不是编译成机器码执行,而是以源代码形式被宿主环境解析执行。这就是为什么我们说...
急救常识学习系统是一个创新的在线教育平台,旨在通过微信小程序结合Vue.js前端框架和SpringBoot后端框架,为用户提供一个便捷、高效的学习环境。该系统通过微信小程序的广泛用户基础,使得急救知识能够迅速传播和...
综上所述,这个粉红色时尚大气生活常识百科新闻资讯网站模板利用了现代Web技术,如HTML5、CSS3和JavaScript,结合响应式设计和CMS,旨在创建一个既美观又实用的多平台信息共享平台。同时,它还考虑到了SEO、用户交互...
开发前环境介绍&设定PART 3 写程式所需的基础常识(Node.js) Ch4. 写程式时该注意的基本原则Ch5. 认识Node.js 专案Ch6. 用Yarn 安装及控管套件Ch7. 善用「.env」管理环境变数,帮你快速迁移专案Ch8. 在「....
"Windows 脚本技术 JS&VBS"这部分涵盖了JavaScript和Visual Basic Script。JavaScript是一种广泛应用于客户端Web开发的脚本语言,它可以在用户浏览器上运行,用于实现交互性和动态功能。VBS则是微软开发的一种脚本...
这是一个基于PHP技术构建的生活常识热门资讯网站模板,包含HTML、JavaScript和CSS等前端技术,用于构建用户友好的交互式网站。下面将详细解释这些技术及其在网站开发中的作用。 1. PHP (Hypertext Preprocessor): ...
这个指南是一个对jQuery库的说明,要求读者了解HTML(DOM)和CSS的一些常识。它包括了一个简单的Hello World的例子,选择器和事件基础,AJAX、FX的用法,以及如何制作jQuery的插件。 这个指南包括了很多代码,你可以...
羽毛球预约小程序是一个基于Javascript开发的微信小程序,包含475个文件,其中包括186个JavaScript文件、99个WXSS文件、82个WXML文件、70个JSON文件、31个PNG图片文件、1个Git忽略文件、1个LICENSE文件和1个Markdown...
塔里法斯 执行者常识JAVASCRIPT-HTML-CSS