JavaScript之对象、构造函数、包装类
来源:互联网 发布:超次元矩阵狂三 编辑:程序博客网 时间:2024/06/05 15:56
创建对象的方法
- 对象字面量
- 构造函数
- Object.create()
对象字面量:
var obj = {};//对象中的属性之间用逗号分隔
构造函数:
- 系统自带的构造函数
var obj = new Object();//系统自带的构造函数有很多,如Number(),String(),Boolean(),Array()
- 自定义的构造函数
其中自定义的构造函数也是正常的函数,为了区分他和正常的函数,将构造函数的首字母大写。
function Person() {}
有了构造函数之后,就可以通过new操作符来创建对象了。
var oPerson = new Person();
另外,构造函数既然是函数,就可以传参数
function Person (name, age) { this.name = name; this.age = age;}var p = new Person('zhangsan',18);console.log(p.name); // 这里将打印出zhangsan
为什么通过new操作符可以创建互相独立的对象呢
原因很简单,就是当我们用new操作符创建对象的时候,会隐式的在构造函数里创建一个this对象,而且最终返回的也是这个this对象。
例如:
function Person(age) { // var this = {}; this.age = age; //return this;}
注意:如果最后自己手动返回我们创建的对象,那么将不会在默认的隐式返回this对象了,如:
function Person (name) { var that = { name : 'zhangsan' } this.name = name; return that;}var oPerson = new Person('lisi');console.log(oPerson.name); // 这里返回的是'zhangsan',因为我们手动返回的that使得不会隐式的返回this对象了
但是如果我们返回的是不可改变得原始值,而不是对象,那么还是会自动的隐式返回this的,这里我就不做测试啦。
对象属性的增删改查
增
对象名.属性名 = 要添加的属性值
删
function fun(){ this.name = 'mm'; } var obj = new fun(); console.log(obj.name);//mm delete obj.name; console.log(obj.name); //undefined
改
对象名.属性名 = 要添加的属性值
查
对象名.属性名
包装类
var str = 'abcd'; console.log(str.length); // 4
大家可能对上述代码有一点疑问,string类型明明就是原始值,怎么会有属性呢?
这是因为,在调度str.length这一行代码之前,程序会自动把str包装成一个字符串对象,在这一行代码执行完之后再销毁这个字符串对象。
所以当我们在执行str.length = 2;这句话之后,再打印str.length还是4
其他类型的数据也是一样的,当我们给原始值加属性的时候,都是先隐式包装成对象,然后赋属性值之后在销毁这个对象;
==主页传送门==
0 0
- JavaScript之对象、构造函数、包装类
- javascript对象+构造函数内部原理+包装类
- JavaScript对象、包装类
- [渡一] 171108 构造函数、包装类、临时对象、原型
- Javascript面向对象之构造函数模式
- javascript之面向对象、构造函数
- JavaScript中的对象、类、构造函数
- javascript,类与对象,构造函数方式
- JavaScript 面向对象之构造函数+成员函数详解
- JavaScript之构造函数
- JavaScript创建对象之寄生构造函数模式(六)
- JavaScript创建对象之稳妥构造函数模式(七)
- Javascript 面向对象之构造函数的继承
- Javascript面向对象之非构造函数的继承
- JavaScript面向对象编程之构造函数与new命令
- JavaScript---继承之对象冒充(构造函数绑定)
- 补基础之javascript面向对象-构造函数的继承
- javascript 构造函数方式 对象
- 在spring中使用数据校验
- 二叉树的镜像
- iBET Online Casino Labour Day Free RM10 to New Member(iBET, iBET Free Credit Promotion, iBET Labour
- Volley请求
- Android 自动填充短信验证码
- JavaScript之对象、构造函数、包装类
- sql server t-sql脚本转成oracle plsql
- 遍历嵌套Map
- clips系列二-clips调用外部函数
- HDU 6019 set
- 扫描二维码和生成二维码
- yum 命令
- 初级技术平台期的思考
- 致青春——(/・ω・\)