Tekkaman

导航

 

new operator

  When the code new Foo(...) is executed, the following things happen:

  1. A new object is created, inheriting from Foo.prototype.(即新建对象的 __prototype__ 属性与 Foo.prototype 一样)
  2. The constructor function Foo is called with the specified arguments and this bound to the newly created object. new Foo is equivalent to new Foo(), i.e. if no argument list is specified, Foo is called without arguments.
  3. The object returned by the constructor function becomes the result of the wholenew expression. If the constructor function doesn't explicitly return an object, the object created in step 1 is used instead. (Normally constructors don't return a value, but they can choose to do so if they want to override the normal object creation process.)

  You can add a shared property to a previously defined object type by using theFunction.prototype property. This defines a property that is shared by all objects created with that function, rather than by just one instance of the object type. The following code adds a color property with value null to all objects of type car, and then overwrites that value with the string "black" only in the instance object car1

  

Function

  Function objects inherit from Function.prototype.  Function.prototype cannot be modified. In JavaScript every function is actually a Function object.

  prototype和__proto__是完全不一样的两个东西。

  

  __proto__用于实现继承。

  

  

  

posted on 2016-02-24 14:34  Tekkaman  阅读(193)  评论(0编辑  收藏  举报