预言
对象真经
JavaScript真经
Javascript中没有“类”,类已经化于无形,与对象融为一体。
正是由于放下了“类”这个概念,javascript的对象才有了其他编程语言所没有的活力。
前言
编程世界里只存在两种基本元素。
数据
天生是文静的,总想保持自己固有的本色。
代码
代码天生活跃,总想改变这个世界。
面向对象的思想首次将数据和代码结合成为一体,并以一个简单的对象概念呈现给编程者。
Javascript把数据和代码都简化到最原始的程度。
javaScript元素
简单数据五种
#ff0000, null, boolean, number,string
复杂数据一种
Object
中国古典朴素唯物思想
把世界最基本的元素归为金木水火土
其他复杂的物质都是由这五种基本元素组成
Javascript中的代码只体现为一种形式function
Javascirpt类型
任何一个javascript的标识、常量、变量和参数都只是:
unfined,null,bool,number,stirng,object,function类型中的一种。
也就typeof返回值表明的类型。
Javascript函数
函数类型
定义式
Function myFunc(){
Alert(“定义式”);
}
变量式
Var myfunc=function(){
Alert(“变量式”);
}
Javascript函数只是一个命了名的变量而已,其变量类型即为function,变量的值就是我们编写的函数代码体
变量型函数
var myFunc=function(){
alert("first");
}
myFunc();
myFunc=function(){
alert("second");
}
myFunc();
执行结果
first
second
定义型函数
function myFunc (){
alert("first");
}
myFunc();
function myFunc (){
alert("second");
}
myFunc();
执行结果
second
second
两种函数类型分析
Javascirpt执行引擎并非一行一行地分析和执行程序,而是一段一段地分析执行。
在同一段程序的分析执行中,定义式的函数语句会被提取出来优先执行。
函数定义执行完之后,才会按顺序执行其他语句代码。
即:在第一次调用myFunc之前,第一个函数语句定义的代码逻辑,已经被第二个函数定义语句覆盖了。所以两次调用都是执行最后一个函数逻辑。
两种函数类型分析
如果把这个javascript代码分成两段,例如将它们写在一个html中,并用<script/>标签将其分成两块。
<script>
function myThirdFunc(){
alert("myThirdFunc:first");
}
myThirdFunc();
</script>
<script>
function myThirdFunc(){
alert("myThirdFunc:second");
}
myThirdFunc();
</script>
结果
myThirdFunc:first
myThirdFunc:second
Function函数
神奇之处
函数function类型本身也具有对象化的能力。
对象和数组一样,用属性名或者方法名作为下标来访问并处理。
它既是对象,也是数组(字典)
波粒二象性
函数function与对象object超然的结合能力。
悟透javascript 来自淘豆网m.daumloan.com转载请标明出处.