zodiac

JS高级技巧

。_饼干妹妹 提交于 2020-02-09 00:26:04
//region安全的类型检测 //可靠的方法:在任何值上调用原生toString()方法,都会返回一个[object NativeConstructorName]格式的字符串。每个类内部都有一个[Class]属性 这个属性指定了对应的构造函数名 var va = []; //alert( Object.prototype.toString.call( va ) );//[object Array] //endregion //region作用域安全的构造函数 function Person1( name, age ) { this.name = name; this.age = age; } var person1 = new Person1( "zodiac", 22 ); //每当使用new时 构造函数内的this对象会指向新创建的对象示例 //当没有使用new创建构造函数时出错 直接调用构造函数 this会映射到全局window对象 person1 = Person1( "zodiac", 22 ); // alert(window.name);//"zodiac" //解决方案: function Person2( name, age ) {//instanceof用来在运行时指出对象是否是特定类的一个实例 if ( this instanceof Person2 ) {