javascript函数原型访问

时间:2014-05-30 10:23:50

标签: c# javascript prototype

来自c家族语言(我使用c#)使得Javascript模型在某种程度上令人困惑。

在c#中你必须有一个班级。然后从该类实例化该对象以使用它。

在Javascript中

没有课程。这完全是关于功能的。函数本身就是一个对象,它可以直接使用而无需实例化。

例如:

function sayHi(name){
alert ("hiiiii  " + name);
}

sayHi("John");

所以函数sayHi已经是一个对象并实例化并正常工作!!

现在,如果您想访问其属性原型,可以执行以下操作:

function sayHi(name){
 alert ("hiiiii  " + name);
 }

sayHi.prototype.nn = 20;
 sayHi("John");
alert(sayHi.nn);

但上面的代码将无法提醒nn为20;它会给出undefined !!

但是如果你将sayHi函数作为另一个变量的构造函数,那么这个prototype属性将像以下一样可访问:

 function sayHi(name){
     alert ("hiiiii  " + name);
     }

    sayHi.prototype.nn = 20;
     sayHi("John");
    alert(sayHi.nn);

var hi2 = new sayHi("May");
alert(hi2.nn);

现在alert(hi2.nn)给你20;这意味着sayHi的原型在我们使用单词new将其分配给另一个变量进行实例化之前无法访问。

我的问题:

  • 这不是类似于c#类的实例化吗?
  • ,因为函数sayHi已经是Function个对象;什么 是除了它之外使其prototype无法访问的目的 是另一个变量的构造函数吗?

CODE DEMO

0 个答案:

没有答案