首页 > 代码库 > js 原型 对象篇

js 原型 对象篇

一切皆对象

js中  值类型就不是对象  剩下的都是对象(也就是引用类型)

 

typeof()运算符 判断四种值类型 

typeof 10; --> Number  ||   typeof "10" -->String  || typeof true --> Boolean  || typeof x --> undefined  

 

typeof(funciton(){}) --> function

typeof([1,2,3]) --> Object

typeof({a:1,b:2}) --> Object

typeof(null) --> Object

typeof(new Number(10)) --> Object   // 

 

判断一个变量是不是对象非常简单 值类型 用typeof()判断  引用类型 用 instanceof() 判断 

 

注: instanceof()运算符的判断规则 :  A instanceof B    一个构造函数的prototype属性所指向的对象是否存在另外一个要检测对象的原型链上?

                                                A是对象 B一般都是构造函数 ,沿着A的__proto__(隐形原型)向上一级查找,同时沿着B的prototype这条线向上找,如果两者能找到同一引用,返回true

对象  若干属性的集合

 javascript中 数组是对象,函数是对象,对象是对象  js中属性以键值对的形式表现出来 所以 属性 方法 的区别就是后面键值的不同 

 var obj = {
  a : 10,
  b : function(){}, 
  c : {
    name : "liuxiankun",
    year : 1992
  },
 };

 obj是一个自定义对象,有a b c 三个属性 ,c属性的值还是一个对象 又有两个属性

 函数和数组也是对象 不可以用上面的方法定义属性(因为以上自定义对象是 new Object()的实例 牵强吧) 但是只要是对象 就是属性的集合

 函数为例

 var fn = function(){} 

 fn.a = 10;

 fn.b = funciton(){}

 fn.c = {
    name : "liuxiankun",
    year : 1992
 }

以上代码中 函数作为对象被赋值了三个属性  很明显 属性的集合

jQuery中的$.trim()   

$ 本身就是一个函数

$.trim() 就是函数身上的一个属性 属性的值就是函数

 

js 原型 对象篇