js对象,类
js闭包网站:http://www.cnblogs.com/qieguo/p/5457040.html
有权访问另一个函数作用域内变量的函数都是闭包。
这里 inc 函数访问了构造函数 a 里面的变量 n,所以形成了一个闭包。再来看一段代码
function a() {
var n = 0;
function f() {
n++;
console.log(n);
}
return f;
}
var c = a();
c(); //控制台输出1
c(); //控制台输出2
看看是怎么执行的:
var c = couter(),这一句 couter()返回的是函数 inc,那这句等同于 var c = f;
c(),这一句等同于 f(); 注意,函数名只是一个标识(指向函数的指针),而()才是执行函数。
后面三句翻译过来就是: var c = f; f(); f();,跟第一段代码有区别吗? 没有。
为啥要那样写?
我们知道,js的每个函数都是一个个小黑屋,它可以获取外界信息,但是外界却无法直接看到里面的内容。将变量 n 放进小黑屋里,除了 f 函数之外,没有其他办法能接触到变量 n,而且在函数 a 外定义同名的变量 n 也是互不影响的,这就是所谓的增强“封装性”。
而之所以要用 return 返回函数标识 f,是因为在 a 函数外部无法直接调用 f 函数,所以 return f与外部联系起来。
JS
Js的基本认识:基于对象和事件驱动具有安全性能的脚本语言,可编程且能被直接解析执 行的语言就称为脚本语言,js可以直接被嵌入到html中。
Js的作用:网页特效、表单验证、游戏、动画、后台程序
Js的组成:ECMAscript-js核心语法 BOM(浏览器对象模型) 标准DOM(html文档对象模型)
创建:外部:创建一个外部js文件。例如xxx.js
内部:js 语句
输出的方法
1.向网页中输出内容(文本,标签):document.write()
2.弹出提示对话框:alert('文本内容')
3.往控制台输出 console.log('文本内容')
4.在js中严格区分大小写
5.使用\来链接两行文本,例如: document.write('这是第三行\语句');
6.JavaScript的执行顺序:按照在HTML文件中出现的顺序依次执行
变量
声明变量:var [关键字] ,变量要先声明再赋值
变量声明但是不赋值,返回undefined
1:parseInt() 转成整数(整型)
2:parseFloat() 转成小数(浮点型)
3:转成字符串 toString():
4:转成布尔Boolean()
创建javascript对象
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鸟教程(runoob.com)</title>
</head>
<body> <script>
person={firstname:"John",lastname:"Doe",age:50,eyecolor:"blue"}
document.write(person.firstname + " is " + person.age + " years old.");
</script> </body>
</html>
//定义并创建对象的实例
//JavaScript最基本的命令是document.write。这个命令简单地打印指定的文本内容到页面上。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鸟教程(runoob.com)</title>
</head>
<body> <script>
function person(firstname,lastname,age,eyecolor){
this.firstname=firstname;
this.lastname=lastname;
this.age=age;
this.eyecolor=eyecolor;
}
myFather=new person("John","Doe",50,"blue");
document.write(myFather.firstname + " is " + myFather.age + " years old.");
</script> </body>
</html>
//在JavaScript中,this通常指向的是我们正在执行的函数本身,或者是指向该函数所属的对象(运行时)
//本例使用函数来构造对象:
JavaScript 类
JavaScript 是面向对象的语言,但 JavaScript 不使用类。
在 JavaScript 中,不会创建类,也不会通过类来创建对象(就像在其他面向对象的语言中那样)。
JavaScript 基于 prototype,而不是基于类的。
访问对象的方法
方法是能够在对象上执行的动作。
您可以通过以下语法来调用方法:
这个例子使用了 String 对象的 toUpperCase() 方法来将文本转换为大写:
var x=message.toUpperCase();
js对象,类的更多相关文章
- js面向对象(对象/类/工厂模式/构造函数/公有和原型)
https://www.cnblogs.com/sandraryan/ 什么是对象 js中一切都是对象(有行为和特征).js允许自定义对象,也提供了内建对象(string date math等) 对象 ...
- js中对象 类 实例的区别 数据类型 创建对象
类是对象的具体细分,实例是类中的一个具体事物. 基本数据类型和 引用数据类型 基本数据类型:numble string undefined null 引用数据类型:对象和函数 对象数据类型又细分为:对 ...
- JS 对象封装的常用方式
JS是一门面向对象语言,其对象是用prototype属性来模拟的,下面,来看看如何封装JS对象. 常规封装 function Person (name,age,sex){ this.name = na ...
- js对象/数组深度复制
今天碰到个问题,js对象.数组深度复制:之前有见过类似的,不过没有实现函数复制,今晚想了一下,实现代码如下: function clone(obj) { var a; if(obj instanceo ...
- js对象详解
js自定义对象 一,概述 在Java语言中,我们可以定义自己的类,并根据这些类创建对象来使用,在Javascript中,我们也可以定义自己的类,例如定义User类.Hashtable类等等. 目前在J ...
- JS对象之间的关系
JS对象类型 JS中,可以将对象分为"内部对象"."宿主对象"和"自定义对象"三种. 1.本地对象 ECMA-262定义为"独立于 ...
- [JS] 面向对象的5种写法和拓展JS对象的写法
面向对象的JAVA 最开始当然是对象的定义了 收集了以下的五种写法 //第1种写法 function Circle(r) { this.r = r; } Circle.PI = 3.14159; C ...
- js对象的定义及处理
一,概述 在Java语言中,我们可以定义自己的类,并根据这些类创建对象来使用,在Javascript中,我们也可以定义自己的类,例如定义User类.Hashtable类等等. 目前在Javascrip ...
- JS对象类型的确定
JS是松散类型的语言,这一点JS的对象表现得尤为突出.那么如何来确定JS对象的具体类型呢? 首先,我们可以使用typeof运算符确定其基本类型(number,object,function,undef ...
- js对象小结
前奏 对象是js的基本数据类型,准确来说除了字符串,数字,boolean值,null与undifine之外,js中的值都是对象.js中的对象是一种复合值,他将很多值(原始值或其他对象)聚合在一起,可以 ...
随机推荐
- 系统自动生成ID(比UUID.radom().tostring()要好看)
public class test1 { public static void main(String[] args) { char[] para = {'A','B','C','D','E','F' ...
- IIS 和 各个协议
1,IIS是Internet information service是internet信息服务的简写,它支持三大服务器,WWW,FTP,SMTP(简单Mail传输协议): 2,NNTP(网络新闻传输协 ...
- mssql update from
update b set memo = a.name from a,b where a.id = b.id --mssql的update :from语法 2 --a表 b表 结构分别 id ,name ...
- JavaFX基础学习之URLConnection
一个标准的JavaFX文件包含三个部分:主类 . 控制类. 界面设计(XML+CSS) 1,main.java package application; import javafx.applicati ...
- centos7,yum安装的redis用systemctl无法启动
因为之前使用显示命令启动redis的,要使redis在后台运行就需要改redis.conf中的daemonize 为yes. 这次在centos7上也顺手改了为yes,然后使用systemctl启动, ...
- mysql B+树 Cardinality MRR
B+树索引并不能找到一个给定键值的具体行,而是被查找数据行所在的页.然后数据库通过把页读入到内存,再在内存中进行查找,最后得到想要查找的数据. Show index from table. Cardi ...
- unity 组件开发
//在unit菜单加入Component->b2Components->b2BodyComponent [AddComponentMenu("b2Components/b2Bod ...
- 【ORACLE】“System.Exception: System.Data.OracleClient 需要 Oracle 客户端软件 version 8.1.7 或更高版本。”解决办法
我的电脑是win10.64位.问题如题,在网上找了很多办法都没搞好,如下: 1.给oracle目录设置“Authenticated Users”用户的“读取/写入”权限 2.IIS网站物理路径凭据添加 ...
- Linux用户相关的操作命令
1.建用户: adduser phpq //新建phpq用户 passwd phpq //给phpq用户设置密码 2.建工作组 groupadd test //新建 ...
- 使用PIE对IE进行CSS3兼容介绍和经验总结
国外团队开发的兼容插件,去年做项目时才发现,非常强大 主角:PIE.js , PIE.htc 两种方法可以实现 官方网站:http://css3pie.com/ 演示地址:http://css3pie ...