构造函数
new后面调用函数,我们称为构造函数(首字母大写)
Object() 我们把他视为一个构造函数,构造函数的本质就是一个函数,只不过构造函数的目的是为了创建新对象,为新对象进行初始化(设置对象的属性)
var aaa=new Stu(); console.log(aaa); function Stu(){ }
//利用构造函数自定义对象 function Student(name) { this.name=name; this.sayHi=function(){ console.log(this.name+"说:大家好") }; this.sayHi() } 在这里我们创建一个新对象,然后将构造函数的作用域赋给新对象, 调用构造函数中的方法。 var stu1=new Student("张三"); var stu2=new Student("李四"); console.log(stu1); console.log(stu2);
this
1、只出现在函数中
2、谁调用了函数,this就指的是谁
3、new People() People中的this 指被创建的对象实列
new
1、开辟内存空间,存储创建的对象
2、把this设置为当前对象
3、执行内部代码,设置对象属性和方法
4、返回新创建的对象
var aaa=new stu(); console.log(aaa); aaa.say(); function stu(){ this.say=function () { console.log(this); } }
属性绑定
var stu =new Object() var aaa="age";//想把变量值赋给对象改变属性名 //对象.属性 stu.name="拴住"; //stu.aaa=19; 不可以 //对象[变量] stu[aaa]=20; // //对象[值] stu[0]="你好"; console.log(stu)
进制转换(拓展性内容)
八进制表示法(0开头 0-7组成)
十六进制表达法(从0-9 、a(A)-f(F), 已0X开头)
parselnt(数值,进制数) 任意进制的值转化为10进制
1、一个参数,取整
var str="12.35"; console.log(parseInt(str)); //12 var num="12abc"; console.log(parseInt(str))//12
2、俩个参数,进制转换
i 第二参数是2,则将第一个参数视作二进制
i 第二参数是8,则将第一个参数视作八进制
i 第二参数是16,则将第一个参数视作十六进制
// 十六进制 转换 为十进制 var str = "0xff"; console.log(parseInt( str ,16 ) ); //给你一个值,告诉我他是进制的数 255 // 八进制 转换 为十进制 var num ="017"; console.log(parseInt( num ,8 ) );//17 // 二进制 转换 为十进制 var ste="111"; console.log(parseInt(ste,2));//7
3、如果没有提供 第二参数,根据第一个参数的前缀来决定转换的进制基数
i 前缀是0x,则转换为十六进制;
i 如果前缀是0,则转换为八进制;
i 其他情况均转换为十进制。
// 虽然是以0开头,但是八进制没有数字8,则采用十进制 str = "078"; console.log(parseInt( str ) ); // 78
var strs = "0xff"; console.log(parseInt( strs ) ); // 255 换为十六进制; var nums ="017"; console.log(parseInt( nums ) );//17 转换为八进制 var stes="111"; console.log(parseInt(stes));//111 转换为二进制
toString()
1、没有参数转换成字符串
var c=22; console.log(c.toString())