-
类型检测小结查看全部
-
Object.prototype.toString查看全部
-
instantceof注意点查看全部
-
instantceof举例查看全部
-
instantceof举例查看全部
-
obj intance Object 判断对象是不是数组,基于原型链来判断数据类型 左操作数是一个对象,当其不是对象的时候,直接返回false,右操作数是一个函数构造器,查看全部
-
类型检测typeof查看全部
-
类型检测查看全部
-
隐式转换 字符串与数字之间的加号理解为字符串拼接 减号理解为运算查看全部
-
js的六种数据类型 特点一: "32"+32="3232" "32"-32=0 number string boolean null undefined object对象:function、array、Date查看全部
-
实现继承的方式: 1、Student.prototype = new Person(); 2、Student.prototype = Object.create(Person.prototype); 推荐方法(ES5) Student.prototype.constructor = Student; 3、兼容性处理(没有Object.create()方法): if (!Object.create){ Object.create = function(proto){ function F(){} F.prototype = proto; return new F; } }查看全部
-
1.instanceof左边一般是对象,右边是一个函数(构造器)。假如右边不是函数对象,会报错;假如左边不是对象,会直接返回false; 2.instanceof用来判断右边构造器的prototype属性是否出现在左边对象的原型链上; 3.从js的解释器层面来讲,instanceof是比对对象的,执行环境不同,构造器不同,instanceof方法失效(不同window和iframe之间的对象类型检测不能使用instanceof)。查看全部
-
1.修改类.prototype.属性时,会影响所有已经创建的实例,相当于修改静态变量; 但是直接修改类.prototype,赋值为新的对象时,并不会影响到已创建的实例,但是会对之后新创建的实例有影响。 2. 不允许遍历非本身的对象: //配置(configuarable)、枚举(enumerable)、可写(writable)这些属性都默认为false Object.definePrototype(Object.prototype, 'x',{writable:true, value: 1}); var obj = {}; for(var key in obj){ console.log('result' + key); } for(var key in obj){ //hasOwnProperty:判段某个属性是否属于本身的对象(可排除原型链上的属性干扰) if(obj,.hasOwnprototype(key)){ console.log('result' + key); } }查看全部
-
1.var obj = {x: 1}; Object.getPrototypeOf(obj);//返回对象的原型 Object.getPrototypeOf(obj) === Object.prototype //true 2.var obj2 = Object.create(null); obj2.toString(); //undefined 并不是所有的对象的原型链上都有Object.prototype 3.function abc(){} abc.prototype;//abc{} var bined = abc.bind(null);//bind修改运行时的this bined.prototype;//undefined bind没有prototype属性查看全部
-
function Person(name, age){ this.name = name; this.age = age; } Person.prototype.hi = function(){ console.log('Hi,My name is' + this.name + ',I am' + this.age + 'years old'); } Person.prototype.LEGS_NUM = 2; Person.prototype.walk = function(){ console.log(this.name + "is walking..."); } function Student(name, age, className){ Person.call(this, name, age); this.className = className; } //Object.create()创建一个空对象,并且这个对象的原型指向这个参数 Student.prototype = Object.create(Person.prototype); //将constructor指向Student本身 Student.prototype.constructor = Student; //覆盖父类的hi方法 Student.prototype.hi = function(){ console.log("Hi,my name is " + this.name + "I'm" + this.age + "years old now,and from" + this.className + "."); } Student.prototype.learn = funtion(){ console.log(this.name + " is learning" + subject + 'at' + this.className + '.'); } var bosn = new Student('Bosn', 28,'Class 3,Grade 2'); bosn.hi(); bosn.LEGS_NUM; bosn.walk(); bosn.learn('math');查看全部
举报
0/150
提交
取消