Object 是一个函数
Function也是一个函数 function是一个关键字
他们的数据类型都是function:
console.log(typeof Object);//"function"
console.log(typeof Function);//"function"
函数有三种写法
1.声明式:写一个函数运行脚本时 系统预编译时 帮我们创建这个函数对象
2.定义式:创建函数的语法糖 直接生成一个函数数据(对象) 被标识引用
var a=function(){}
3.标准的创建一个函数对象
var f1=new Function("var a=20;console.log(a)")
f1()
原型添加对象方式:
prototype.成员名=属性内容 //对象直接添加成员
prototype={成员名:属性} //添加对象在添加成员
function fn(){
this.a=100
}
var b=[1,2,3,4]
fn.prototype.life=b//原型对象直接添加成员 不能直接fn.prototype=b
fn.prototype={asd:123}//原型对象添加对象再添加成员
fn.prototype=[1,2,3]//
官方函数的原型中添加的对象共属于他创建的对象的原型
var obj=new Function()
var obj1=new Function()
Function.prototype.life=123
console.log(obj.life==obj1.life);
对象和函数的关系 (常常出现在笔试题的选择题中)
Object.prototype.life = 1 //以后用Object创建的对象的原型对象有life属性为1
关于函数的name属性:
由以下代码可知:
直接function fn() 创建函数 函数名是name=fn
var fn=new Fun('this.name="karen"')此种创建方法没有name属性
function fn(){ //此方法创建的函数名是name fn
this.name="karen"
}
var fn = new Function('this.name="karen"') //这个创建了一个方法 这种方式创建的函数n
ame不是fn
关于对象和函数的关系 他们的官方函数:
由以下函数可知:
1. var fn = new Function('this.name="karen"') 此方法创建函数fn不是Object类型而是function属性
他的原型关联Function.prototype的内容
2. var f1 = new fn() 此时的f1才是Object属性 它的原型关联了Object.prototype的内容
Object.prototype.life = 1 //以后用Object创建的对象的原型对象有life属性为1
Function.prototype.life = 2 //方法
// function fn(){ //此方法创建的函数名是name fn
// this.name="karen"
// }
var fn = new Function('this.name="karen"') //这个创建了一个方法 这种方式创建的函数
name不是fn
var f1 = new fn() //这是创建一个对象
console.log(typeof (fn));
console.log(f1.name, f1.life); //f1指向Object.prototype.life=1
console.log(fn.life, fn.name); //fn指向Function.prototype.life=2
由以下代码可知:
1.Object.prototype添加的原型 func函数可以访问函数创建的对象也可以访问
2.Function.prototype添加的原型 只有func函数可以访问 函数创建的对象不能访问
Object.prototype.life = 2 //以后用Object创建的对象的原型对象有life属性为1 fn(函数)和f1(对象)都可以访问到Object的原型
// Function.prototype.life = 1 //以后用function创建的对象的原型对象有life属性为1
function fn() { //此方法创建的函数名是name fn
this.name = "karen"
}
var f1 = new fn() //这是创建一个对象
console.log(f1.life);//1
console.log(fn.life);//1 函数可以访问到对象的prototye Function.prototye=函数的原型对象=>原型对象=》 ==》Object.peototye