JavaScript——对象、包装类

JavaScript——对象、包装类
对象的创建方法
①var obj={}   plainObject(对象字面量/对象直接量)
②构造函数创建
    1)系统自带的构造函数  Object araay number
var obj=new Object()
    2)自定义的构造函数(自定义构造函数与普通函数看着没有区别,定义时为了区分,要符合 大坨峰式命名规则:既每个单词首字母都大写)

构造函数内部原理:
new之后,函数内部会自动隐式的 添加  三段式  //为隐式自动添加的内容
例如:
new Person();

function Person(name,height){
//var this={}
this.name=name;
this.height=height;
this.say=function(){
console.log(this.say);
}
//return this;    可手动return一个对象,但不能返回一个原始值,若写返回原始值,实际还是隐式的返回this
}


原始值不可能有属性和方法,但经过包装类
例如  :   var  str="abc";
str.length=3
原始值不可能有属性和方法,但会隐式的发生:
  var  str="abc";
str.length=3
//new String(str).length=3;   delete
  str.length=3  //访问时再次new String(str).length=3;   delete   这两个就不是一个对象了,所以显示undefined


typeof 运算符把类型信息当作字符串返回
例题:
var str="abc";
str += 1;
var test = typeof(str);
if(test.length == 6){
test.sign = "typeof的返回结果是String";
}
console.log(test.sign);

输出为  undefined
原因:
test是原始值,无属性和方法,运行test.sign = "typeof的返回结果是String";时会自动隐式 new String(test).sign="xxx"   delete
下面打印时又会自动隐式new String(test).sign   delete   所以输出undefined