function Class1() {} Class1.prototype.getName = function() { alert('Class1') }; Class1.prototype.getName();运行结果的确弹出了对话框,这里 prototype 指向了什么对象?
function Class1() {} Class1.prototype.getName = function() { alert('Class1') }; Class1.prototype.getName();运行结果的确弹出了对话框,这里 prototype 指向了什么对象?
function Class1() {} Class1.prototype.getName = function() { alert('Class1') }; Class1.prototype.getName();
JS里 方法也是属性 如果我给化简下这样 你应该可以懂var getName = function(){ alert('Class1')};
getName();
// 跟上面的含义上时等价的.这里的getName是绑定在全局window上的 相当于window.getName
// 而你上面的getName是绑定在Class1的原型上的.而原型本身就是个对象
不需要实例就可以调用准确点说,是js里一切都是对象,包括你的class1,你给这个对象创建了一个方法(相当于静态的),然后直接调用
<script type="text/javascript">
<!--
function Class1(){}var obj = new Object();alert(Class1.prototype instanceof Object);//看下关系
obj.getName = function(){ alert('Class1') };
obj.getName();
//-->
</script>
和前面的例子 仅 从最后调用 getName 方法来说,有什么不同?
function Class1() {} Class1.getName = function() { alert('Class1') }; Class1.getName(); var cs2=new Class1();
cs2.getName(); //undefine
function Class1() {} Class1.prototype.getName = function() { alert('Class1') }; Class1.prototype.getName(); var cs2=new Class1();
cs2.getName(); //class1