在object的子函数中定义构造函数

时间:2014-03-14 12:49:40

标签: javascript arrays object

当我想在子函数中将构造函数定义为我的对象的属性时,它会在我调用构造函数时显示错误的错误:

'undefined' is not a function (evaluating 'arr[0].myval()')

我定义我的对象,如下面的代码'

function stocks(nemad,url,content) {
    this.url=url;
    this.nemad=nemad;
    this.content=content;
    var me=this;
    nemad = require('webpage').create();
    nemad.open(url, function (status) {
        this.myval=function () {
            return nemad.evaluate(function() {
                var myans=document.getElementById("d12").innerHTML;
                return myans;
            }); };
    }); };

当我致电console.log("it's :"+arr[0].myval());时,它无法工作......我犯了错误

2 个答案:

答案 0 :(得分:0)

您已正确关闭,但从未使用过它:

var me = this;
...
nemad.open(url, function (status) {
   me.myval = function () {
...

答案 1 :(得分:0)

我发现,我们可以在加载nemad(例如phantomjs中的网页对象)之后,web可以使用nemad评估代码定义一个函数。像下面的代码。

nemad.onLoadFinished = function() {
    // here you can call a function that evaluating  nemad
   };

一个必须重要的一点是,您可以在页面加载完成后调用评估