相关疑难解决方法(0)

在JavaScript中使用'prototype'与'this'?

有什么区别

var A = function () {
    this.x = function () {
        //do something
    };
};
Run Code Online (Sandbox Code Playgroud)

var A = function () { };
A.prototype.x = function () {
    //do something
};
Run Code Online (Sandbox Code Playgroud)

javascript prototype this

765
推荐指数
14
解决办法
11万
查看次数

在构造函数和原型中声明javascript对象方法

在创建javascript对象时,我可以在构造函数或原型中放置方法声明.例如,假设我想要一个具有Name属性和Bark方法的Dog类.我可以将Bark方法的声明放入构造函数中:

var Dog = function(name) {
    this.Name = name;
    this.Bark = function() {
        alert(this.Name + " bark");
    };
}
Run Code Online (Sandbox Code Playgroud)

或者我可以作为原型对象的方法:

var Dog = function(name) {
    this.Name = name;
}

Dog.prototype.Bark = function() {
    alert(this.Name + " bark");
};
Run Code Online (Sandbox Code Playgroud)

当我实例化Dog类型的对象时,两种方法似乎都正常工作:

var dog = new Dog("Fido");
dog.Bark();  //Both approaches show "Fido bark"
Run Code Online (Sandbox Code Playgroud)

我应该更喜欢这些方法中的一种吗?使用一个优于另一个是否有任何优势?在幕后,这两种方法最终做了完全相同的事情吗?大多数人倾向于采用哪种方法?

谢谢您的帮助.

javascript oop

146
推荐指数
3
解决办法
7万
查看次数

OOP javascript和简单类实例化

首先,如果这是一个愚蠢的问题,我很抱歉.我已经写了两个代码片段.从找到的第一个代码片段在这里写的John Resig,毫无疑问他的最好成绩之一和第二代码片段是由我从原始代码修改只能理解上的差异,但我不知道其实是什么都和我之间的差异可以而且不能与两者相比.请有人帮我理解差异.谢谢.

    function makeClass(){
        return function(args){
            if ( this instanceof arguments.callee ) {
                if ( typeof this.init == "function" )
                    this.init.apply( this, args.callee ? args : arguments );
                }
                else  return new arguments.callee( arguments );
        };
    }
    var User = makeClass();
    User.prototype.init = function(first, last){
      this.name = first + " " + last;
    };
    var user = User("John", "Resig");
    console.log(user);
Run Code Online (Sandbox Code Playgroud)

修改版

    function myClass(args)
    {
        if (this instanceof arguments.callee) 
        {
            this.init = function(first, last){
                this.name = first …
Run Code Online (Sandbox Code Playgroud)

javascript oop

6
推荐指数
1
解决办法
516
查看次数

标签 统计

javascript ×3

oop ×2

prototype ×1

this ×1