如题详述: 不知道改怎么区分这两种方法,它可能会涉及到对象的定义方式,所以问题有二
问题1: 定义方式
var str = new String('luo');
var str = 'luo'
这两种定义字符串的方式有什么区别?
问题二: 方法的调用产生的‘静态方法’和‘实例方法’
var str = 'luo';
console.log(str.toLowerCase()); //LUO
这是实例方法,通过原型链继承的,好理解
但是,并不是所有方法都是原型链继承的,如下:
console.log(String.fromCharCode(76,85,79)); //LUO
为什么会有这样的方法?这个方法是怎么理解?
1.
var str = 'luo'
这个方式定义的是一个原始类型的string,var str = new String('luo');
这种方式是以String
为构造函数定义了一个新的对象。比较相似的还有
var str = String('luo');
这个也是定义的原始类型的string。以上的
String
指的是js的一个转化参数为字符串的函数。以下的
String
指的是js的一个全局自有对象。2.例子中的
fromCharCode
就是String
的静态方法,也就是直接可以通过String
调用的方法,不需要在一个String
的实例上调用。实例方法就是实例化后对象的方法,每个实例都会有这个方法,可以被继承。