简单来说,就是编写编定程序,让计算机代码解决某个问题,对某个计算体系规定一定的运算方式,使计算体系按照该计算方式运行,并最终得到相应结果的过程。
为了使计算机能够理解人的想法,人类通过某种方式,将需解决的问题的思路、方法和手段通过计算机能够理解的形式告诉它,让计算机完成人的指令。
楼主应该是初学者吧。在最初,我也问过这个问题,在学会了使用一些功能以后,就自然明白了,很难说清楚。我把JS理解为,页面的化妆术。我们就是化妆者,通过JS,我们可以把一个页面全我们想要的意思进行渲染,执行相应的功能,生成相应的效果,比如,显示当前系统时间,比如,显示实时信息的更新(通过AJAX)。术语一点说,JS是一种页面脚本,通过执行程序脚本片段,我们可以对页面及页面上的元素进行操作,实现特定的功能与效果。有一些东西,我们用高级编程语言是实现不了的,而用JS,可能几行代码就可搞定。比如,显示当前系统时间等。
先随便了解一些这种类似的说法,自己去实地编写一些小功能。如果你也是WEB开发的朋友,在页面做得多了,页面效果也做得多了,自然会心领神会。
加油!
本文主要参考了 MDN文档 和 知乎讨论 。
在js中,大部分东西都是对象,数组是对象,函数也是对象,对象更加是对象。 不管我们给数组和函数定义什么内容,它们总是有一些相同的方法和属性 。比如说hasOwnProperty(),toString()等:
这说明一个对象所拥有的属性不仅仅是它本身拥有的属性,它还会从其他对象中继承一些属性。当js在一个对象中找不到需要的属性时,它会到这个对象的父对象上去找,以此类推,这就构成了对象的原型链 。理解js的原型链对使用js的对象非常有帮助。
让我们通过一个例子由浅到深地理解原型链:
这是我们经常使用的创建对象的方式,将共同的方法放到Foo.prototype中,所有实例都共有这个方法了。
这是怎么实现的呢?我们看下面这张图的第一行:
我们定义的show函数在Foo.prototype中,当我们执行f1.show()时,js发现f1本身没有show这个属性,所以它就到f1的原型(也就是__proto__指向的对象)去找,找到了就可以调用。
图片第一行告诉了我们4点:
我们先看看Foo的原型吧!Foo是一个函数,它的构造函数是js内部的function Function(),Function的prototype指向了一个对象Function.prototype,因此Foo的__proto__就指向了Function.prototype,如图。
我们继续深入下去,Function.prototype这个对象,它就是一个普通的对象,它的构造函数是js内置的function Object(),function Object()的prototype指向Object.prototype,因此Function.prototype.__proto__就指向Object.prototype,这个对象中定义了所有对象共有的属性,比如我们之前说的hasOwnProperty()和toString()等。
Object.prototype就是原型链的终点了,它的__proto__是null,js查找属性时,如果到这里还没有找到,那就是undefined了。
到这里就不难理解为什么我们说在js中,函数也是对象了,它就是继承自对象的!
如果如有疑问,欢迎指出!