js精要之对象属性
// 对象的应用解除 将对象变量置为null(在写插件多大型项目是不要忘记解除对象占用)
var object1 = new Object(); var object2 = object1; // 对象object2 和 object1 引用同一个对象 object1.myCustomProperty = "Awersome!"; object1 = null; console.log(object2.myCustomProperty); //Awersome!
// 创建对象
var Name = { name : "boy", sex:"nan", ceshi:function(){ console.log(Name.sex); } } console.log(Name.sex);
// 等价于
var Name = new Object(); Name.name = "boy"; Name.sex = "nv"; Name.ceshi = function(){ console.log(Name.sex); } Name.ceshi();
// 创建数组
var colors = ["red","blue","black"]; console.log(colors[0]);
// 等价于
var colors = new Array("red","blue","blacks");
// 创建函数
function ref(value){ return console.log(value); } ref(2);
// 等价于 (js调试器不会识别)
var ref = new function("value","return value;");
// 访问属性 在 js 里面 . 和 [] 除了语法不一样其他大致相同
var arr = []; arr.push("aaa"); console.log(arr); // 等价于 arr["push"]("bbb"); //注意引号 可以使用特殊字符 console.log(arr);
// 动态访问属性
var arr1 = []; var method = "push"; arr1[method]("ccc"); console.log(arr1);
// 判断对象引用类型
var fun1 = function(){}; var arr2 = []; console.log(typeof arr2); //typeof 只能判断function类型; console.log(arr2 instanceof Array) //instanceof还可以鉴定继承类型 console.log(arr2 instanceof Object)//所有的引用类型都是继承object console.log(Array.isArray(arr2)) //当数组是在不同的框架传过来时,可以使用isArray()判断,instanceof失效
// 原始数据类型
var name1 = 'topOne'; name1.last = "aaa"; console.log(name1.last); // undefined