无法理解课堂上的功能差异。在Javascript OOP中将其定义为原型

时间:2014-06-17 08:08:36

标签: javascript oop

我无法通过在类函数和函数中定义函数来理解究竟有什么区别。将其定义为原型。这是我的代码。

第1部分

function myContent() {

    this.toUserID = "1234";
    this.loadMainLabel = function(url) {
        alert("url:"+url);
    }       
}

var objMyContent = new myContent();
objMyContent.loadMainLabel("www.google.com");

第2部分

function myContent() {

    this.toUserID = "1234";          
}

var objMyContent = new myContent();
myContent.prototype.loadMainLabel = function(url) {
    alert(url);
}
objMyContent.loadMainLabel("www.google.com");

两者都给出相同的输出..但是,究竟有什么区别?任何想法都会很明显。

干杯!

1 个答案:

答案 0 :(得分:-1)

在两种情况下,您都将对象定义为原型。在其他几种语言中,您可以为对象定义一个类(不是对象本身),然后将对象创建为该类的实例。

  • <强>类

    定义方法和属性,但与该类的实例不同。然后将对象创建为类的实例。

  • <强>原型

    定义原型对象,然后从该原型创建衍生对象。原型是这种对象的一个​​例子,而不是那种对象的定义。

有关差异的更详细说明,请参阅此MDN page